簡體   English   中英

在JavaScript中復制數組元素的簡便方法

[英]Concise way to copy array elements in JavaScript

我需要將元素從一個JavaScript數組復制到另一個。 是的,我知道克隆數組存在很多問題,但是大多數相關的答案都會創建一個現有數組的新副本。 我已經有一個要保留的數組的副本。 我只想用另一個數組的值更新值。 像這樣:

//I already have this array
const oldArray = new Array(10);
//here is a new array I get from somewhere
const newArray = new Array(10).fill(3);
//I just want to copy the values, not create a new array
for(let i = 0; i < newArray.length; i++) {
  oldArray[i] = newArray[i];
}

是否有一些很酷,巧妙的方法可以執行此操作,也許使用ES6語法?

您可以使用Array#splice從一開始就刪除oldArray等於newArray長度的項目,然后將newArray所有項目添加到其中:

 const oldArray = new Array(10).fill(4); const newArray = new Array(5).fill(3); oldArray.splice(0, newArray.length, ...newArray); console.log(oldArray); 

您可以使用Object.assign()

 const arr = [1,2,3]; const values = [4,5,6]; Object.assign(arr, ...values.map((prop, index) => ({[index]:prop}))); console.log(arr); 

您可以只使用Object.assign並將數組作為目標,並將數組作為源。

數組自己的可枚舉鍵的所有值都將以相同的索引傳輸到目標數組。

 var oldArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], newArray = [10, 11, 12, 13, 14]; Object.assign(oldArray, newArray); console.log(oldArray); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

暫無
暫無

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

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