JavaScript數組復制的正確方法:[…arr]與new Array(…arr)的區別是什么?

JavaScript數組復制的正確方法:[…arr]與new Array(…arr)的區別是什么?

JavaScript數組復制:避開陷阱,選擇最佳方法

javascript開發中,數組復制是常見操作。然而,new Array(…arr) 這種復制方法卻可能導致意想不到的結果。例如,當原數組 arr 為 [1] 時,let array = new Array(…arr) 生成的 array 竟為空數組!本文將深入分析其原因,并對比 new Array(…arr) 和 […arr] 兩種方法的優劣。

問題根源在于 new Array() 構造函數的行為。當僅傳入一個數字參數時,它會被解釋為數組長度,而非數組元素。因此,new Array(1) 創建的是長度為 1 的空數組,而非包含元素 1 的數組。當 arr 為 [1] 時,new Array(…arr) 展開后參數變為 1,最終結果就是一個空數組。

為了避免這種歧義,建議使用數組字面量 […arr] 進行數組復制。展開運算符 … 會將 arr 中所有元素復制到新數組中,無論 arr 內容如何,都能保證正確復制。[…arr] 方法更直觀、可靠,避免了 new Array() 構造函數在處理單個數字參數時的歧義。 因此,[…arr] 是更推薦的數組復制方法。

立即學習Java免費學習筆記(深入)”;

理解 new Array() 構造函數在不同參數下的行為,對于編寫高質量JavaScript代碼至關重要。

以上就是JavaScript數組復制的正確方法:[…arr]與new Array(…arr)的

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享