我有兩個數組,我想將一些值從一個複製到另一個,特別是這些值的索引大於第一個數組的長度。複製數組長度的整數值
var arr1 = [1,2,3];
var arr2= [1,2,3,4,5,6,7];
如果我這樣做:
var length = arr1.length;
for(var i = length; i < arr2.length; i++){
arr1.push(arr2[i]);
}
我猜想那i
將initalized,然後將該長度值將不會被如此重新即使長度變化ARR1變化,不會物。
但我的問題是,爲了減輕任何潛在的錯誤,我可以將arr1.length的值複製到一個新變量中。
所以我能做到這一點:
var length = JSON.parse(JSON.stringify(arr1.length));
for(var i = length; i < arr2.length; i++){
arr1.push(arr2[i]);
}
也許更簡單:
var length = Number(arr1.length);
for(var i = length; i < arr2.length; i++){
arr1.push(arr2[i]);
}
我的問題是最終 - 我如何從一個數組的當前長度複製值,並將其存儲在獨立的變量不會改變?
分配的原始值,使值的副本,而不是引用。所以你不必做任何事情。 – nnnnnn
你的第一個例子本身工作正常.. –
你爲什麼不用'concat'和'slice'來實現你的目標?你可以用'arr1.concat(arr2.slice(arr1.length));' – Georg