美文网首页
js实现一个多层级的对象合并

js实现一个多层级的对象合并

作者: 伟笑_552f | 来源:发表于2021-03-18 14:10 被阅读0次

1.思路分析

1.我们要实现,如果目标对象中的属性具与源对象有相同的键并且相同的键的值也为对象,则将此对象也进行相同规则的合并,否则属性将被源对象中的属性覆盖,并且不同的键会同时存在
2.首先要理解,target是主体,遍历sources对象,判断如果target对象存在相同键并且同时为对象,递归调用合并方法,否则将target对象键值替换
3.返回新对象

2.代码

function merge(target) {
  for (let i = 1, j = arguments.length; i < j; i++) {
    let source = arguments[i] || {};
    for (let prop in source) {
      if (source.hasOwnProperty(prop)) {
        let value = source[prop];
        if (value !== undefined) {
          target[prop] = value;
        }
      }
    }
  }

  return target;
};

测试
merge({}, {q: 1, series: [{a: 1, b: 2, data: [4]}]}, {a: 2, series: [{ a: 3, b: 4, data: [1, 2, 3] }] })

image.png

相关文章

  • js实现一个多层级的对象合并

    1.思路分析 1.我们要实现,如果目标对象中的属性具与源对象有相同的键并且相同的键的值也为对象,则将此对象也进行相...

  • js对象合并

    当有2个集合需要合并的时候,当然js里面叫做对象,可以这么做: arr3: {a:1,b:2}

  • js对象合并

    对象的合并 需求:设有对象 o1 ,o2,需要得到对象 o3 3varo1 = { a:'a'}, o2 = { ...

  • JS对象合并

    1.jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。 $.extend(object...

  • Map,把对象属性当做索引

    1、实现一个对象合并的例子,想以name为索引

  • js对象合并、数组合并

    对象合并

  • js中的prototype

    prototype翻译过来是原型的意思,在js中特指对象的原型prototype对象是js实现面向对象的一个重要机...

  • jQuery扩展类

    一、JS合并对象的方法 *JQuery方法$.extend()的使用 [if !supportLists]1、[e...

  • gulp-css压缩

    gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并 gulp是一个基于流的构建工具,可...

  • JS中继承的实现

    JS中继承的实现 #prototype (js原型(prototype)实现继承) 全局的Function对象没有...

网友评论

      本文标题:js实现一个多层级的对象合并

      本文链接:https://www.haomeiwen.com/subject/mngucltx.html