使用 for 循环
js
let a = ["a", "b", "c", "d"];
let b = [];
for (let i = 0; i < a.length; i++) {
b[i] = a[i];
}let a = ["a", "b", "c", "d"];
let b = [];
for (let i = 0; i < a.length; i++) {
b[i] = a[i];
}使用 ES6 新增 Array.form()方法
js
let a = ["a", "b", "c", "d"];
let c = Array.from(a);let a = ["a", "b", "c", "d"];
let c = Array.from(a);使用 slice()
js
let box = list.slice();let box = list.slice();使用 concat()
js
let box = [].concat(list);let box = [].concat(list);ES6 扩展运算符
js
let box = [...list];let box = [...list];复制对象数组/对象数组深拷贝
js
var array = [{ number: 1 }, { number: 2 }, { number: 3 }];
function objArrDeepCopy(obj) {
var newobj = obj.constructor === Array ? [] : {};
if (typeof obj !== "object") {
return;
}
for (var i in obj) {
newobj[i] = typeof obj[i] === "object" ? objArrDeepCopy(obj[i]) : obj[i];
}
return newobj;
}
var copyedArray = objArrDeepCopy(array);
copyedArray[0].number = 100;
console.log(array); // [{number: 1}, { number: 2 }, { number: 3 }]
console.log(copyedArray); // [{number: 100}, { number: 2 }, { number: 3 }]var array = [{ number: 1 }, { number: 2 }, { number: 3 }];
function objArrDeepCopy(obj) {
var newobj = obj.constructor === Array ? [] : {};
if (typeof obj !== "object") {
return;
}
for (var i in obj) {
newobj[i] = typeof obj[i] === "object" ? objArrDeepCopy(obj[i]) : obj[i];
}
return newobj;
}
var copyedArray = objArrDeepCopy(array);
copyedArray[0].number = 100;
console.log(array); // [{number: 1}, { number: 2 }, { number: 3 }]
console.log(copyedArray); // [{number: 100}, { number: 2 }, { number: 3 }]多层深拷贝
js
liang14658fox