[英]Concise way to return a new array of N elements filled with iterated values from another array? Vanilla 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.