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数组的基本用法及数组根据下标(数值或字符)移除元素
Oct 20 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
Jan 14 Javascript
js实现最短的XML格式化工具实例
Mar 12 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
jQuery常见的选择器及用法介绍
Dec 20 Javascript
9种改善AngularJS性能的方法
Nov 28 Javascript
js实现图片放大并跟随鼠标移动特效
Jan 18 Javascript
Vue使用localStorage存储数据的方法
May 27 Javascript
js实现动态时钟
Mar 12 Javascript
JS判断数组四种实现方法详解
Jun 29 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
Oct 27 Javascript
详解Vue中的watch和computed
Nov 09 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
Yii分页用法实例详解
2014/12/04 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
Python脚本实现代码行数统计代码分享
2015/03/10 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
幼儿如何来做好自我评价
2013/11/05 职场文书
实验教师岗位职责
2014/02/13 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
求职信内容怎么写
2014/05/26 职场文书
团队拓展活动方案
2014/08/28 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
优秀教研组申报材料
2014/12/26 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
文化大革命观后感
2015/06/17 职场文书
初婚初育证明范本
2015/06/18 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python