解决方案

1.extend()

    var obj1 = {a:1,b:2};var obj2 = {c:3,d:4};var assignObj = $.extend(obj1,obj2);console.log('assignObj',assignObj);console.log('obj1',obj1);console.log('obj2',obj2);

可以发现obj1的值被改变了。

    var obj1 = {a:1,b:2};var obj2 = {c:3,d:4};var assignOObj = $.extend({},obj1,obj2);console.log('assignOObj',assignOObj);console.log('obj1',obj1);console.log('obj2',obj2);

extend()中加一个空对象,obj1的值就不会被改变。

2.遍历

    var obj1={a:1};var obj2={b:2,c:3};for(var key in obj2){if(obj2.hasOwnProperty(key)===true){//此处hasOwnProperty是判断自有属性,使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问会避免原型对象扩展带来的干扰obj1[key]=obj2[key];} }console.log(obj1);console.log(obj2);


3.Object.assign()

Object.assign 是ES6新添加的接口,主要的用途是用来合并多个JavaScript的对象。

Object.assign() 接口可以接收多个参数,第一个参数是目标对象,后面的都是源对象,assign方法将多个原对象的属性和方法都合并到了目标对象上面,如果在这个过程中出现同名的属性(方法),后合并的属性(方法)会覆盖之前的同名属性(方法)

Object.assign(target, ...sources)

    var obj1 = {a:1,b:2};var obj2 = {c:3,d:4};var assignObj = Object.assign(obj1,obj2);console.log('assignObj',assignObj);console.log('obj1',obj1);console.log('obj2',obj2);

obj1的值也被改变了,和$.extend()类似.

    var obj1 = {a:1,b:2};var obj2 = {c:3,d:4};var assignOObj = $.extend({},obj1,obj2);console.log('assignOObj',assignOObj);console.log('obj1',obj1);console.log('obj2',obj2);

参考文章

https://segmentfault.com/a/1190000020035444

https://www.jianshu.com/p/aa7ac6dd2a56

JavaScript——对象合并解决方案相关推荐

  1. JavaScript 对象合并

    JavaScript 中有多种方法可以合并对象. 1.使用 Object.assign() 方法: 它可以将一个或多个对象的属性复制到目标对象中.例如: const obj1 = { a: 1, b: ...

  2. 如何动态合并两个JavaScript对象的属性?

    我需要能够在运行时合并两个(非常简单的)JavaScript对象. 例如,我想: var obj1 = { food: 'pizza', car: 'ford' } var obj2 = { anim ...

  3. JavaScript对象的合并以及深拷贝

    文章目录 一.将下列对象合并: 方式一:Object.assign() 方式二:扩展运算符(...) 方式三:自己封装方法 二.深拷贝 方式一:结合使用JSON.parse()和JSON.string ...

  4. 如何遍历JavaScript对象?

    本文翻译自:How to iterate over a JavaScript object? I have an object in JavaScript: 我在JavaScript中有一个对象: { ...

  5. Javascript对象的查询字符串编码

    您是否知道将Javascript对象编码为可通过GET请求传递的string的快速简便的方法? 没有jQuery ,没有其他框架-仅是纯Javascript :) #1楼 如果要递归转换嵌套对象,并且 ...

  6. 使用jQuery将表单数据转换为JavaScript对象

    如何将表单的所有元素转换为JavaScript对象? 我希望有一些方法可以自动从表单中构建JavaScript对象,而不必遍历每个元素. 我不需要$('#formid').serialize();返回 ...

  7. 如何测试一个空的JavaScript对象?

    在AJAX请求之后,有时我的应用程序可能返回一个空对象,例如: var a = {}; 如何检查情况呢? #1楼 如果您使用的是较新的浏览器,则有一种简单的方法. Object.keys(obj).l ...

  8. 如何正确克隆JavaScript对象?

    我有一个对象x . 我想将其复制为对象y ,以使对y更改不会修改x . 我意识到,复制从内置JavaScript对象派生的对象将导致额外的不需要的属性. 这不是问题,因为我正在复制自己的文字构造对象之 ...

  9. 【转】调试JavaScript 错误的解决方案

    A  使用alert() 和document.write() 方法监视变量值 如果要中断代码的运行,监视变量的值,则使用alert() 方法: 如果需要查看的值很多,则使用document.write ...

最新文章

  1. Ubuntu下载地址
  2. 干货 | 从零进阶数据分析学习资料汇总(限时福利)
  3. CQ:clearquest
  4. css动画详解 (transition animation)
  5. Storm程序的并发机制原理总结
  6. ZZULIOJ 1061:顺序输出各位数字
  7. php 变量 类名,关于php:使用变量类名和静态方法时出错
  8. python测验4_Python小测试_4
  9. 一位程序员 8 年的物联网奋斗史
  10. Two sum (bilibili有讲解视频)
  11. 最详细的Java入门到精通完整学习教程,学Java先收藏了!!
  12. c语言编译器不支持c99,Visual Studio2013的C语言编译器对C99标准的支持情况
  13. 管理者必须要精通的六项管理技能
  14. 鬼畜视频制作必备——vegas pro特别版歌声合成工具UTAU
  15. south plus soul /index.php 南+入口检测
  16. 四川山海蓝图抖音账号权重分类
  17. uvalive 4987 Evacuation Plan 疏散计划
  18. ftp服务器在线编辑,ftp服务器上怎么直接修改office文档.
  19. @Valid对象嵌套List对象校验无效的解决方案
  20. numpy获得前n大元素下标

热门文章

  1. java中方法不调用会执行_java[新手]类里的方法没有调用为什么实现了?
  2. python无向加权图_图:无向图(Graph)基本方法及Dijkstra算法的实现 [Python]
  3. vue对象深拷贝_Vue 对数据对象实现深拷贝赋值
  4. java使用jdbc的查询_如何在Java中使用多个查询使用JDBC
  5. Java爬取frame的课程表_从爬取湖北某高校hub教务系统课表浅谈Java信息抓取的实现 —— import java.*;...
  6. 华为30pro什么时候能升鸿蒙,荣耀30Pro、荣耀30Pro+什么时候升级鸿蒙系统 荣耀30Pro、荣耀30Pro+怎么升级鸿蒙系统...
  7. 丹佛斯冷媒尺汉化下载_制冷系统十大仿真软件!制冷百家网下载
  8. hdfs namenode -format 初始化创建不了目录的问题
  9. DBSCAN密度聚类
  10. XAMPP的MYSQL无法启动 -This may be due to a blocked port, missing dependencies,