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实例教程(19) 使用HoTMetal(4)
Dec 23 Javascript
JavaScript DOM 学习第五章 表单简介
Feb 19 Javascript
javascript实现日历控件(年月日关闭按钮)
Dec 12 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
Jul 09 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
深入浅析JS的数组遍历方法(推荐)
Jun 15 Javascript
Node.js 中使用 async 函数的方法
Nov 20 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
vue路由教程之静态路由
Sep 03 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
jQuery实现简单弹幕制作
Dec 10 jQuery
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
example1.php
2006/10/09 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
tornado框架blog模块分析与使用
2013/11/21 Python
总结Python编程中函数的使用要点
2016/03/20 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
python算法表示概念扫盲教程
2017/04/13 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
教师岗位职责
2013/11/17 职场文书
小学二年级评语
2014/04/21 职场文书
爱心捐助倡议书
2014/05/19 职场文书
护士求职信范文
2014/05/24 职场文书
2014年妇联工作总结
2014/11/21 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书