Object.assign()合并对象与concat合并数组
Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
1.复制对象
const obj = { a: 1 }; const copy = Object.assign({}, obj); console.log(copy); // { a: 1 }
2.合并对象
const o1 = { a: 1 }; const o2 = { b: 2 }; const o3 = { c: 3 }; const obj = Object.assign(o1, o2, o3); console.log(obj); // { a: 1, b: 2, c: 3 } console.log(o1); // { a: 1, b: 2, c: 3 }, 注意目标对象自身也会改变。
3.合并有相同属性的对象
const o1 = { a: 1, b: 1, c: 1 }; const o2 = { b: 2, c: 2 }; const o3 = { c: 3 }; const obj = Object.assign({}, o1, o2, o3); console.log(obj); // { a: 1, b: 2, c: 3 }
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
let ary = [1,2,3]; let ary1 = [6,4,5,1]; console.log(ary.concat(ary1)); // [1, 2, 3, 6, 4, 5, 1] console.log(ary.concat(ary1,7,7)); // [1, 2, 3, 6, 4, 5, 1, 7, 7] console.log(ary.concat(9,10)); // [1, 2, 3, 9, 10] console.log(ary); // [1, 2, 3]