js中的对象合并

js中对象合并的几种方法


Es6中的对象新增方法: Object.assign()

1、基本用法:
Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。

const obj1 = {
    
    
  a: 1
}
const obj2 = {
    
    
  b: 2
}

Object.assign(obj1, obj2)
console.log(obj1); // { a: 1, b: 2 }
  • 这样确实可以合并两个不同的对象,但是,下面的代码却没有出现预期的效果.
const obj1 = {
    
    
  id: 1,
  name: 'james'
}
const obj2 = {
    
    
  id: 2,
  name: 'curry'
}

Object.assign(obj1, obj2, obj2)
console.log(obj1);
  • 最后输出的结果是{ id: 2, name: 'curry' }
  • 只有obj2对象,也就是说 obj1对象被覆盖了, 原因是Object.assign()规定如果合并的对象有一个或者多个同名的属性,那么后面的对象将覆盖前面的对象.

lodash中的merge()方法

const _ = require('lodash')

const obj1 = {
    
    
  a: 1
}
const obj2 = {
    
    
  b: 2
}

_.merge(obj1, obj2)
console.log(obj1); // { a: 1, b: 2 }
  • 同样的,如果对象中有一个或者多个一样的属性,那么,后面的对象将覆盖前面的对象.

猜你喜欢

转载自blog.csdn.net/weixin_40944062/article/details/105323979