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