js合并对象中有相同key值的

在 JavaScript 中,可以使用 Object.assign() 方法来合并对象中有相同 key 值的属性。

该方法接受多个参数,第一个参数是目标对象,其余参数是源对象。如果源对象中有与目标对象相同的 key,则会覆盖目标对象中的值。

let obj1 = {a: 1, b: 2};
let obj2 = {b: 3, c: 4};
let obj3 = {c: 5, d: 6};
let obj = Object.assign({}, obj1, obj2, obj3);
console.log(obj);
// output: {a: 1, b: 3, c: 5, d: 6}

如果要更深层次的合并对象,可以使用第三方库lodash的merge函数

let obj1 = {a: {b: 2}};
let obj2 = {a: {c: 3}};
let obj = _.merge({}, obj1, obj2);
console.log(obj);
// output: {a: {b: 2, c: 3}}

如果要保证原来的对象不被更改,可以使用ES6的解构赋值的方式

let obj1 = {a: 1, b: 2};
let obj2 = {b: 3, c: 4};
let obj3 = {c: 5, d: 6};
let obj = {...obj1, ...obj2, ...obj3};
console.log(obj);
// output: {a: 1, b: 3, c: 5, d: 6}

需要注意的是,如果使用解构赋值,后面的对象会覆盖前面对象中相同的key

  •