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 相关文章推荐
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
Mar 16 Javascript
JavaScript创建对象的写法
Aug 29 Javascript
javascript使用prototype完成单继承
Dec 24 Javascript
javascript实现的简单的表单验证
Jul 10 Javascript
jquery合并表格中相同文本的相邻单元格
Jul 17 Javascript
常用的js验证和数据处理总结
Aug 02 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
浅谈JS封闭函数、闭包、内置对象
Jul 18 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
jquery实现动态添加附件功能
Oct 23 jQuery
Vue组件的使用及个人理解与介绍
Feb 09 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
Sep 05 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将向Java靠拢
2006/10/09 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
php常用hash加密函数
2014/11/22 PHP
phpfpm的作用和用法
2019/10/10 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python 图片验证码代码
2008/12/07 Python
Python处理文本换行符实例代码
2018/02/03 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
Python3中exp()函数用法分析
2019/02/19 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
群众路线班子对照检查材料
2014/09/25 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
java中如何截取字符串最后一位
2022/07/07 Java/Android