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 相关文章推荐
javascript学习(一)构建自己的JS库
Jan 02 Javascript
JS随机生成不重复数据的实例方法
Jul 17 Javascript
JavaScrip调试技巧之断点调试
Oct 22 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 Javascript
ES6实现的遍历目录函数示例
Apr 07 Javascript
微信小程序实现传参数的几种方法示例
Jan 10 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
Jul 16 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
Jan 27 jQuery
Node.js 在本地生成日志文件的方法
Feb 07 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
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 页面执行时间计算代码
2008/12/04 PHP
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
php递归实现无限分类的方法
2015/07/28 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
JS中eval函数的使用示例
2013/07/21 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
JS获取时间的方法
2015/01/21 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
最基础的Python的socket编程入门教程
2015/04/23 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
电大学习个人自我评价范文
2013/10/04 职场文书
公司担保书范文
2014/05/21 职场文书
六一亲子活动总结
2014/07/01 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书