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进行跨域请求
Jan 25 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
jquery attr方法获取input的checked属性问题
May 26 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
Dec 31 Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 Javascript
Vue实现web分页组件详解
Nov 28 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
vue中img src 动态加载本地json的图片路径写法
Apr 25 Javascript
JS FormData对象使用方法实例详解
Feb 12 Javascript
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 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
短波问题解答
2021/02/28 无线电
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python 处理数据的实例详解
2017/08/10 Python
AI人工智能 Python实现人机对话
2017/11/13 Python
python基于SMTP协议发送邮件
2019/05/31 Python
tornado+celery的简单使用详解
2019/12/21 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Python通过socketserver处理多个链接
2020/03/18 Python
研究生自荐信
2013/10/09 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
五四演讲稿范文
2014/09/03 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2014年招生工作总结
2014/11/26 职场文书
肖申克救赎观后感
2015/06/02 职场文书
师范生见习自我总结
2015/06/23 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
hive数据仓库新增字段方法
2022/06/25 数据库