Object.assign无法合并深层次对象怎么办?如何实现深层次的对象合并?

330 阅读1分钟

通过 js 原生的 Object.assign 在合并对象时仅仅能够合并一层,那要是对象层级很深的话,这个方法就无法奏效的。 当对象层级很深时,就需要我们自己处理。

这里采用的是借助loadsh库

使用先要先引入 loadsh 库

// Load the full build.
var _ = require('lodash');
// 也可以选择按需加载,参考官方文档
var object = {
  q: {
    w:
      { a: 1, b: 2 }
  }
};

var other = {
  q: {
    w:
      { a: 3, b: 4, c: 5 }
  }
};

// merge方法和assign方法类似,都会修改目标对象。
_.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
console.log(object);

运行结果:

{ q:{
    w:{
    a3, b: 4, c: 5
    }
 }

附loadsh链接:www.lodashjs.com/ 非常优秀的三方库,还有许多功能,大家可以看看。

到底啦~~~~~~~