iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Javascript实用方法之json合并的场景分析
  • 785
分享到

Javascript实用方法之json合并的场景分析

2024-04-02 19:04:59 785人浏览 独家记忆
摘要

场景 2个JSON合并, Jquery 的“extend()”方法有两个原型:合并的方法,分别是浅合并和深度合并,其实浅合并只是json的第一层被合并,而深度

场景

2个JSON合并,

Jquery 的“extend()”方法有两个原型:合并的方法,分别是浅合并和深度合并,其实浅合并只是json的第一层被合并,而深度合并是全部层数都被合并,分别如下写法:

1.浅合并,target被object1...合并,只有一层

$.extend( target [, object1 ] [, objectN ] )
  • 深度合并,target被object1...合并,包含一层二层三层...

    要深度合并, [deep]需要为true, 后面覆盖前面,所以如要要保留后面的,则需要 object1 =$.extend(true,target,object1) ,但target已经变化了

$.extend( [deep ], target, object1 [, objectN ] )

这是jquery自带的,下面带大家看看javascript如何实现。

代码

1.深度合并(递归


function mergeJSON(minor, main) {
    for(var key in minor) {
        if(main[key] === undefined) { // 不冲突的,直接赋值 
            main[key] = minor[key];
            continue;
        }
        // 冲突了,如果是Object,看看有么有不冲突的属性
        // 不是Object 则以(minor)为准为主,
        //console.log(key)
        if(isJSON(minor[key])||isArray(minor[key])) { // arguments.callee 递归调用,并且与函数名解耦 
            console.log("is json")
            //arguments.callee(minor[key], main[key]);
            mergeJSON(minor[key], main[key]);
        }else{
            main[key] = minor[key];
        }
    }
}    
//判断是否是json
function isJSON(target) {
    return typeof target == "object" && target.constructor == Object;
}
//判断是否是array
function isArray(o) {
    return Object.prototype.toString.call(o) == '[object Array]';
}

测试

var a = {
    ccc: {
        d: 111,
        b: 222,
        a: 222,
        ee: [{
            a: 1
        }, {
            b: 2
        }]
    }
};
var b = {
    ccc: {
        fff: 666,
        ee: [{
            c: 3
        }]
    }
};
mergeJSON(b, a);
console.log(a);
console.log(b);

到此这篇关于Javascript实用方法之json合并的文章就介绍到这了,更多相关js json合并内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Javascript实用方法之json合并的场景分析

本文链接: https://www.lsjlt.com/news/166954.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Javascript实用方法之json合并的场景分析
    场景 2个json合并, jQuery 的“extend()”方法有两个原型:合并的方法,分别是浅合并和深度合并,其实浅合并只是json的第一层被合并,而深度...
    99+
    2024-04-02
  • Vue中$set()的使用方法场景分析
    目录Vue中$set()的使用方法前言$set()的应用场景一$set()的应用场景二补充:vue中$set的用法$set用于更新数组:$set用于更新对象:Vue中$set()的使...
    99+
    2023-02-18
    Vue中$set()使用 Vue中$set()用法 Vue中$set()
  • Vue集成three.js并加载glb、gltf、FBX、json模型的场景分析
    目录先上几个网址安装组件中引入 基本使用 补充 最近刚开始做的一个项目,后面有个模块要通过three.js实现3D的场景,因为之前也没接触过3D这块,就...
    99+
    2024-04-02
  • Javascript闭包使用场景的原理分析
    这篇文章给大家分享的是有关Javascript闭包使用场景的原理分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、闭包Javascript中,只有函数内部的子函数才能读取局部变量,闭包就是能够读取其他函数内部...
    99+
    2023-06-25
  • Python在不同场景合并多个Excel的方法
    目录前言01 合并多个同字段的excel02 拼接多个不同字段的excel03 合并一个excel的多个sheet前言 三种场景: 多个同字段的excel文件合并成一个excel多个...
    99+
    2024-04-02
  • Go并发控制WaitGroup的使用场景分析
    1. 前言 上一篇介绍了 Go并发控制--Channel 使用channel来控制子协程的优点是实现简单,缺点是当需要大量创建协程时就需要有相同数量的channel,而且对于子协程继...
    99+
    2024-04-02
  • python并发场景锁的使用方法
    目录前言加锁的原因代码实现可重入锁总结前言 如果你学过操作系统,那么对于锁应该不陌生。锁的含义是线程锁,可以用来指定某一个逻辑或者是资源同一时刻只能有一个线程访问。这个很好理解,就好...
    99+
    2024-04-02
  • Spring Boot整合Zookeeper实现分布式锁的场景分析
    目录一、Java当中关于锁的概念1.1.什么是锁1.2.锁的使用场景1.3.什么是分布式锁1.4.分布式锁的使用场景二、zk实现分布式锁2.1.zk中锁的种类:2.2.zk如何上读锁...
    99+
    2024-04-02
  • Node.js中npx命令的使用方法及场景分析
    npx使用教程 今晚在学习Vue-Cli时, 由于突发奇想想试试最新的@4.x.x版本, 但是本地全局安装的脚手架版本是@2.x.x的, 因为不想污染全局于是就想到用npx命令, 一...
    99+
    2024-04-02
  • springboot 整合dubbo3开发rest应用的场景分析
    目录一、前言二、dubbo适用场景1、内部单体应用微服务化2、应用服务更多面向内部服务间调用3、对服务管理趋于精细化三、dubbo微服务治理过程中的一个难题四、与springboot...
    99+
    2024-04-02
  • Git高级合并方法实例分析
    本篇内容介绍了“Git高级合并方法实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!高级合并在 Git 中合并是相当容易的。 因为 Gi...
    99+
    2023-06-29
  • SQL语句中JOIN的用法场景分析
    记录:256 写SQL最高境界:SELECT * FROM 表名。当然这是一句自嘲。探究一下SQL语句中JOIN的用法,直到经历这个场景,变得想验证一下究竟。 一、场景 把关...
    99+
    2024-04-02
  • PHP逻辑的实际应用场景分析
    PHP作为一种流行的服务器端脚本语言,主要用于开发Web应用程序。它具有灵活、简单易学的特点,因此在各种项目中得到了广泛应用。本文将从实际应用场景出发,分析PHP逻辑的使用,并提供具体...
    99+
    2024-03-06
    用户权限控制 表单提交 lsp
  • JS apply用法总结和使用场景实例分析
    apply() 方法的作用是在一个对象上调用另一个对象的方法。apply() 方法的语法如下:function.apply(this...
    99+
    2023-08-09
    js
  • 尽量避免使用索引合并的场景问题解析
    目录引言1. 问题重现2. 索引合并2.1 Using intersect(...)2.2 Using union(...)2.3 Using sort_union(...)2.4 索引合并原理3. ...
    99+
    2023-05-15
    避免使用索引合并 避免索引合并场景
  • PHP方法体的实际应用场景
    PHP是一种广泛应用于网页开发的脚本语言,其中方法体在编写PHP程序时扮演着重要的角色。方法体是一个可复用的代码块,可以用来实现特定功能,提高代码的可维护性和复用性。在本文中,我们将探...
    99+
    2024-04-02
  • Python Decorator装饰器的创建方法及常用场景分析
    目录前言一、创建方式二、常用场景前言 1.装饰器本质是一个语法糖,是对被装饰方法或类进行的功能扩充,是一种面向切面的实现方法2.装饰器可以分成方法装饰器和类装饰器,他们的区别是一个是...
    99+
    2024-04-02
  • 浅析css隐藏div块的实现方法和应用场景
    CSS的隐藏功能在网页设计中起着重要的作用,尤其是在实现动态效果的过程中。在这个过程中,隐藏Div块是经常用到的一种方法。本文将为大家介绍CSS隐藏Div块的实现方法和应用场景。一、CSS隐藏Div块的实现方法display属性displa...
    99+
    2023-05-14
  • JavaScript基础之静态方法和实例方法的示例分析
    小编给大家分享一下JavaScript基础之静态方法和实例方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!直接定义在...
    99+
    2024-04-02
  • 表格合并span-method方法的示例分析
    这篇文章将为大家详细讲解有关表格合并span-method方法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。之前写了一些关于element-ui表格合并的方法,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作