JavaScript如何进行数组复制
导语:JavaScript如何进行数组复制?下面是小编给大家提供的数组复制代码实现,大家可以参考阅读,更多详情请关注应届毕业生考试网。
push
function copyArray(arr){
var result = [];
for(var i = 0; i < arr.length; i++){
result.push(arr[i]);
}
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
obj2.push(4);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
join
??使用该方法的缺点是数组中的项全部变成了字符串形式
function copyArray(arr){
var result = [];
result = arr.join().split(',');
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
obj2.push(4);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
concat
function copyArray(arr){
var result = [];
result = arr.concat();
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
obj2.push(4);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
slice
function copyArray(arr){
var result = [];
result = arr.slice();
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
obj2.push(4);
console.log(obj1); /pic/p>
console.log(obj2); /pic/p>
深拷贝
??以上方法实现的仅是数组的浅拷贝,如果要实现数组的深拷贝,需要使用递归方法
function copyArray(arr,result){
var result = result || [];
for(var i = 0; i < arr.length; i++){
if(arr[i] instanceof Array){
result[i] = [];
copyArray(arr[i],result[i]);
}else{
result[i] = arr[i];
}
}
return result;
}
var obj1=[1,2,[3,4]];
var obj2=copyArray(obj1);
console.log(obj1[2]); /pic/p>
console.log(obj2[2]); /pic/p>
obj2[2].push(5);
console.log(obj1[2]); /pic/p>
console.log(obj2[2]); /pic/p>
【JavaScript如何进行数组复制】相关文章:
word公式如何进行快速复制粘贴02-19
如何入门学习JavaScript11-28
PHP新手如何学习数组03-13
Java如何打印数组12-10
如何判断php数组的维度12-27
如何正确使用Java数组11-11
如何检查JavaScript变量的类型03-01
如何使用C语言数组指针09-13
Java数组在内存中是如何存放的10-03