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 相关文章推荐
收集的10个免费的jQuery相册
Feb 26 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
JS实现三个层重叠点击互相切换的方法
Oct 06 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
Jan 14 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
利用React-router+Webpack快速构建react程序
Oct 27 Javascript
使用JavaScript触发过渡效果的方法
Jan 19 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
小程序实现搜索框功能
Mar 26 Javascript
JavaScript高级程序设计之变量与作用域
Nov 17 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
smtp邮件发送一例
2006/10/09 PHP
PHP session会话的安全性分析
2011/09/08 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
全面解读Python Web开发框架Django
2014/06/30 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
Django中的forms组件实例详解
2018/11/08 Python
python读写csv文件的方法
2019/08/13 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
英国手机零售商:Metrofone
2019/03/18 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
函授毕业自我鉴定
2014/02/04 职场文书
《凡卡》教学反思
2014/04/09 职场文书
公司节能减排方案
2014/05/16 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS