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 相关文章推荐
javascript编程起步(第一课)
Jan 10 Javascript
jQuery EasyUI 中文API Layout(Tabs)
Apr 27 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
javascript屏蔽右键代码
May 15 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 Javascript
JavaScript中的Object对象学习教程
May 20 Javascript
Three.js学习之网格
Aug 10 Javascript
在js中做数字字符串补0(js补零)
Mar 25 Javascript
jQuery实现列表的增加和删除功能
Jun 14 jQuery
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
angularjs http与后台交互的实现示例
Dec 21 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 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 CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
smarty简单应用实例
2015/11/03 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
Egret引擎开发指南之编译项目
2014/09/03 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
python cookielib 登录人人网的实现代码
2012/12/19 Python
python删除服务器文件代码示例
2018/02/09 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
python爬虫容易学吗
2020/06/02 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
明信片寄语大全
2014/04/08 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS