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中更短的 Array 类型转换
Oct 30 Javascript
javascript管中窥豹 形参与实参浅析
Dec 17 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
iframe跨域通信封装详解
Aug 11 Javascript
node模块机制与异步处理详解
Mar 13 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
javascript 中关于array的常用方法详解
May 05 Javascript
基于JavaScript实现表格滚动分页
Nov 22 Javascript
JS实现音乐钢琴特效
Jan 06 Javascript
JavaScript实现网页跨年倒计时
Dec 02 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
php 静态化实现代码
2009/03/20 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
jquery cookie插件代码类
2009/05/26 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
理解AngularJs指令
2015/12/10 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python利用datetime模块计算时间差
2015/08/04 Python
python抓取文件夹的所有文件
2018/02/27 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
Python如何将装饰器定义为类
2020/07/30 Python
通过代码实例了解Python sys模块
2020/09/14 Python
广州地球村科技数据库题目
2016/04/25 面试题
酒店前台接待岗位职责
2013/12/03 职场文书
给水工程专业毕业生自荐信
2014/01/28 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
质检员岗位职责范本
2015/04/07 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书