簡體   English   中英

JavaScript 中的 [...array].map(...) 和 [...array.map(...)] 有區別嗎?

[英]Are there differences between [...array].map(...) and [...array.map(...)] in JavaScript?

我不太明白[...array].map(...)[...array.map(...)]之間的區別。 他們有什么不同嗎? 如果是,為什么以及如何?

  • [...array].map(...)將生成一個新的數組淺表副本( [...array] ),然后在其上.map並返回一個全新的數組作為返回值。
  • [...array.map(...)].map覆蓋在原始數組上,這將返回一個新數組,然后立即制作新數組的淺表副本( [...array.map(...)] )。 我必須承認,我並不真正理解這種方法的用例——因為.map本身正在返回一個全新的數組,沒有其他變量應該引用它,我看不出立即轉換的任何價值它的淺拷貝。

(此外,正如chazsolo在評論中指出的那樣,如果array不是數組,但實際上是其他類型,例如Set ,則[...array.map(...)]方法實際上會引發錯誤,因為Set實例沒有.map方法)。

那么[...array.map(...)]array.map(...)相同,只是它在映射完成后會進行額外的不必要的傳播/復制。

由於在 map (它自己的數組)中傳遞了第三個參數, [...array].map(...)有一個小的差異。

正如@chazsolo 在另一條評論中提到的那樣,這種情況將處理array變量不是數組的情況,因此它沒有map方法,但可以迭代並且傳播將創建一個數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM