2.1纯对象:
var t = {a: 1}; var tt = {b:2}; var c = Object.assign({},t,tt);console.log(c);console.log(t);console.log(tt); //目标不设置为{}会改变源对象
var obj = { name: 'coco' }
var obj1 = { age: 27 }
var newObj = { ...obj, ...obj1 };
console.log(newObj); // { name: "coco", age: 27 } //只能引用一层
function test(target, source) { // 有重复的值会被覆盖
for (var obj in source) {
target[obj] = source[obj];
}
return target;
}
2.2数组对象:
var obj1 = [{
"id": 1
"c": "c",
}, {
"id": 2,
"c": "c",
}];
var obj2 = [{
"price": "6666"
}, {
"price": "8888"
}];
//用map
var obj = obj1.map((item,index) => {
return {...item, ...obj2[index]};
});
console.log(obj);
2.3数组:
let a=[1,2,3],b=[4,5,6];
let c=a.concat(b); //不改变本身,内存浪费
for ( let i of b){
a.push(b[i])
}
//函数的func.apply(obj,argv)方法
a.push.apply(a,b);
//扩展运算符
a.push(...b);
let d = [...a,...b];
console.log(d);
...合并对象/数组对象/数组
最新推荐文章于 2024-01-02 09:48:47 发布
本文探讨了JavaScript中对象的浅复制(Object.assign)、深复制、数组合并(map与扩展运算符)的实践与原理,以及如何避免源对象改变。通过实例展示了如何在对象和数组操作中实现目标对象的独立性。
摘要由CSDN通过智能技术生成