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 相关文章推荐
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
js实现瀑布流的一种简单方法实例分享
Nov 04 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
angular $watch 一个变量的变化(实例讲解)
Aug 02 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
Aug 14 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
Apr 23 Javascript
countUp.js实现数字动态变化效果
Oct 17 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 类型转换函数intval
2009/06/20 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
javascript this用法小结
2008/12/19 Javascript
js 编写规范
2010/03/03 Javascript
js 通用订单代码
2013/12/23 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
酒店管理自荐信
2013/10/23 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
交通事故委托书范本
2014/09/28 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python