我不是很明白之間的差別[...array].map(...)和[...array.map(...)]。他們有什么不同嗎?如果是,為什么以及如何?
uj5u.com熱心網友回復:
[...array].map(...)將生成一個陣列 ([...array])的新淺拷貝,然后.map覆寫它并回傳一個全新的陣列作為回傳值。[...array.map(...)]將.map覆寫原始陣列,這將回傳一個新陣列,然后立即制作新陣列的淺拷貝 ([...array.map(...)])。我必須承認,我并不真正理解這種方法的用例——因為.map它回傳一個全新的陣列,沒有其他變數應該持有對它的參考,我沒有看到立即轉換淺拷貝的任何價值其中。
(另外,如所指出的chazsolo的意見,如果array是沒有一個陣列,但實際上一些其他型別的像Set,該[...array.map(...)]方法實際上拋出一個錯誤,因為Set情況有沒有.map方法)。
uj5u.com熱心網友回復:
Well[...array.map(...)]與array.map(...)除了在映射完成后執行額外的不必要的傳播/復制之外相同。
在[...array].map(...)具有小的差異,由于在地圖傳遞的第三引數(陣列它自)。
正如@chazsolo 在另一條評論中所提到的,這種情況將處理array變數不是陣列的情況,因此它沒有該map方法,但可以迭代,并且傳播會從中創建一個陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/369778.html
標籤:javascript 数组
下一篇:打字稿創建規則陣列并獲取
