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 相关文章推荐
window.onbeforeunload方法在IE下无法正常工作的解决办法
Jan 23 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
javascript 获取模态窗口的滚动位置代码
Aug 06 Javascript
深入浅析JavaScript的API设计原则
Jun 14 Javascript
Vue.js常用指令汇总(v-if、v-for等)
Nov 03 Javascript
Vue分页组件实例代码
Apr 17 Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
express默认日志组件morgan的方法
Apr 05 Javascript
vue观察模式浅析
Sep 25 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
深入浅析React中diff算法
May 19 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抽象类 介绍
2012/06/13 PHP
php设计模式小结
2013/02/15 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
input 高级限制级用法
2009/03/26 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
在Python中使用异步Socket编程性能测试
2014/06/25 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
Python递归函数特点及原理解析
2020/03/04 Python
keras 读取多标签图像数据方式
2020/06/12 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
给公司的建议书范文
2014/05/13 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
python3操作redis实现List列表实例
2021/08/04 Python