Javascript 对象(object)合并操作实例分析


Posted in Javascript onJuly 30, 2019

本文实例讲述了Javascript 对象(object)合并操作。分享给大家供大家参考,具体如下:

对象的合并

需求:设有对象 o1 ,o2,需要得到对象 o3

var o1 = { a:'a' }, o2 = { b:'b' };
// 则
var o3 = { a:'a', b:'b' }

方法1:使用JQuery的extend方法

  •         **方法定义**:jQuery.extend([deep], target, object1, [objectN])
  •         > 用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
  •         > 如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象(递归合并)。否则的话,副本会与原对象共享结构。 未定义的属性将不会被复制,然而从对象的原型继承的属性将会被复制。
o3 = $.extend(o1, o2) // 合并 o1 和 o2, 将结果返回给 o3. 注意: 此时,o1 == o3! 即 o1 被修改
// 或
o3 = $.extend({}, o1, o2) // 合并 o1 和 o2, 将结果返回给 o3. 注意: 此时,o1 != o3! 即 o1 没有被修改

方法2:用 Object.assign(); 网上找的例子:

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, 注意目标对象自身也会改变。

方法3:遍历赋值法

代码逻辑:

  1. 循环对象n中的每一个对应属性。
  2. 确认对象n中存在该属性
  3. 确认对象o中不存在该属性
var extend=function(o,n){
  for (var p in n){
    if(n.hasOwnProperty(p) && (!o.hasOwnProperty(p) ))
      o[p]=n[p];
  }
};

类似于直接赋值增加属性:

o3=o1;
o3['b']='b';
// o3 ={ o1:'a', o2:'b' };

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
动态加载js的几种方法
Oct 23 Javascript
javascript 一些用法小结
Sep 11 Javascript
js将json格式内容转换成对象的方法
Nov 01 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
Jquery 实现grid绑定模板
Jan 28 Javascript
javascript框架设计之框架分类及主要功能
Jun 23 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
antd配置config-overrides.js文件的操作
Oct 31 Javascript
详解React路由传参方法汇总记录
Nov 29 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
Jul 30 #Javascript
8个有意思的JavaScript面试题
Jul 30 #Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 #Javascript
原生js添加一个或多个类名的方法分析
Jul 30 #Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 #Javascript
Koa从零搭建到Api实现项目的搭建方法
Jul 30 #Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 #Javascript
You might like
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
文本加密解密
2006/06/23 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
解释i节点在文件系统中的作用
2013/11/26 面试题
毕业生个人的求职信范文
2013/12/03 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
中层干部考核评语
2015/01/04 职场文书
教师学期末个人总结
2015/02/13 职场文书
辩论会主持词
2015/07/03 职场文书
高中开学感言
2015/08/01 职场文书
销售人员管理制度
2015/08/06 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
Springboot中如何自动转JSON输出
2022/06/16 Java/Android