在JavaScript中,对象数组的复制是一个常见的需求,尤其在处理数据时,我们经常需要创建数组的副本以避免直接修改原始数据。以下是关于JavaScript对象数组复制的一些基础概念、方法及其特点:
对象数组:是一个数组,其元素都是对象。
深复制与浅复制:
let originalArray = [{a: 1}, {b: 2}];
let shallowCopy = originalArray.slice();
// 或
let shallowCopyFrom = Array.from(originalArray);
JSON.parse()
和JSON.stringify()
实现深复制,但这种方法有其局限性,例如无法复制函数、RegExp对象等。let originalArray = [{a: 1}, {b: 2}];
let deepCopy = JSON.parse(JSON.stringify(originalArray));
function deepCopy(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj;
}
let copy = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
copy[key] = deepCopy(obj[key]);
}
}
return copy;
}
let originalArray = [{a: 1}, {b: 2}];
let deepCopyArray = deepCopy(originalArray);
_.cloneDeep()
方法可以方便地实现深复制。领取专属 10元无门槛券
手把手带您无忧上云