美文网首页
深度合并

深度合并

作者: Simon_King | 来源:发表于2019-04-03 16:40 被阅读0次

特殊的数据要求,数组为数组JSON对象,对象的值只有基础类型的值和数组。
需要给最后一层对象额外增加一个字段。根据此要求写出以下深度合并的方法

function deepMerge(source, target) {
    let result = {}; //初始化一个空对象
    for (let field in source) { //遍历第一个对象的每个字段
        //如果该字段的值是数组
        if (Object.prototype.toString.call(source[field]) === "[object Array]") {
            source[field] = source[field].map( //调用map重组当前字段的值
                 //递归调用该合并函数
                (value, index) => this.deepMerge(value, target[field][index])
            )
        }
    }
    result[field] = source[field];
    for (let field in target) { //遍历第二个对象的每个字段
        //查找result是否已经有值,添加不同的值
        if (!result.hasOwnProperty(field)) {
            result[field] = target[field]; //设置该字段的值
        }
    }
    return result; //返回对象
}

相关文章

  • 深度合并

    特殊的数据要求,数组为数组JSON对象,对象的值只有基础类型的值和数组。需要给最后一层对象额外增加一个字段。根据此...

  • $.extend()

    合并多个对象$.extend(deep,target,object)deep指示是否深度合并对象,默认为false...

  • 对象深度合并

    const deepObjectMerge=(FirstOBJ: any, SecondOBJ: any)=>{ ...

  • 对象深度合并

  • 重写JS方法

    1. 浅拷贝 2. 深拷贝 对象深度合并 3. 重写promise

  • 合并多个嵌套对象算法

    深度嵌套对象合并:https://blog.csdn.net/weixin_44523860/article/de...

  • 原生JavaScript实现JSON合并(递归深度合并)

    为什么我会想到写这几行代码 在实际工作中,我们会使用许多或自主开发或第三方的工具,有些工具的配置文件相当细节,使用...

  • 论文泛读:《Automatic Skin Lesion Segm

    简 介: 超像素合并算法 (superpixel merging)用于皮肤组织分割, 做到了 非深度方法 中的 ...

  • Perl 模块 Hash::Merge

    简介 把两个任意深度的hash合并成一个。 使用方式如下: 详情 在任何层级,都只从一个hash结构合并无冲突的键...

  • Unity UI资料收集

    UGUI UGUI优化:批次合并源码分析及工具UGUI内核大探究(零)UGUI源码深度剖析 基于ugui组件封装,...

网友评论

      本文标题:深度合并

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