我有两个数组,我想将一些值从一个复制到另一个,特别是这些值的索引大于第一个数组的长度。复制数组长度的整数值
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