//深拷贝 const deepClone = (obj) => { var target = {}; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { if (typeof obj[key] === 'object') { target[key] = deepClone(obj[key]); } else { target[key] = obj[key]; } } } return target; }
var originalArray = [
{
"MaterialCode": "",
"MaterialName": "物料Yy7O",
"MaterialSpec": "物料Yy7O",
},
{
"MaterialCode": "",
"MaterialName": "物料KjTn",
"MaterialSpec": "物料KjTn",
}
];
var copyArr = deepClone(originalArray );
copyArr[0].MaterialName = '张三' //改变新数组的数据
copyArr[0].MaterialSpec = '张三', //改变新数组的数据
console.log("原数组",originalArray)
console.log("新数组",copyArr )
该数组包含了原数组中每个元素的引用。如果数组中的元素是基本类型(如数字、字符串、布尔值),那么引用意味着复制这些值。但是,如果数组中的元素是对象(包括数组、函数等),那么引用意味着复制的是对象的内存地址,而不是对象本身。
深拷贝意味着不仅要复制数组本身,还要复制数组中的每个对象,以及这些对象中包含的任何嵌套对象。
标签:obj,数组,copyArr,js,复制,key,var,拷贝,target From: https://www.cnblogs.com/wengg/p/18065303