详解JavaScript中的数组合并方法和对象合并方法


Posted in Javascript onMay 11, 2018

1 数组合并

1.1 concat 方法

var a=[1,2,3],b=[4,5,6];
var c=a.concat(b);
console.log(c);// 1,2,3,4,5,6
console.log(a);// 1,2,3 不改变本身

1.2 循环遍历

var arr1=['a','b'];
var arr2=['c','d','e'];
for(var i=0;i<arr2.length;i++){
   arr1.push(arr2[i]) 
}
console.log(arr1);//['a','b','c','d','e']

1.3 apply

合并数组arr1和数组arr2,使用Array.prototype.push.apply(arr1,arr2)  or arr1.push.apply(arr1,arr2);

var arr1=['a','b'];
var arr2=['c','d','e'];
Array.prototype.push.apply(arr1,arr2);
//或者
arr1.push.apply(arr1,arr2);<br>console.log(arr1) //['a','b','c','d','e']

2 对象合并

2.1 $.extend()

var obj1= {'a': 1};
var obj2= {'b': 1};
var c = $.extend(obj1, obj2); 
console.log(obj1); // {a: 1, b: 1} obj1已被修改 
//或者 <br>var obj3 = $.extend({}, obj1, obj2) <br>console.log(obj3); //{a: 1, b: 1} 不会改变obj1,obj2

2.2 遍历赋值

var obj1={'a':1};
var obj2={'b':2,'c':3};
for(var key in obj2){
   if(obj2.hasOwnProperty(key)===true){  <br>   //此处hasOwnProperty是判断自有属性,
使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问会避免原型对象扩展带来的干扰
      obj1[key]=obj2[key];
} 
}
console.log(obj1);//{'a':1,'b':2,'c':3};

2.3 Obj.assign()

可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。

Object.assign(target, ...sources)
//a. 复制一个对象<br>var obj = { a: 1 ,b:2};
var copyObj = Object.assign({}, obj);
console.log(copyObj); // { a: 1,b:2 }<br><br>//b.合并多个对象 
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 }, 且目标对象自身也会改变。 

2.4 对象的深拷贝和浅拷贝

2.4.1 浅拷贝

var obj1={'a':1};
var obj2={'b':{'b1':22,'b2':33}};
$.extend(obj1, obj2);  //obj1拷贝了obj2的属性
console.log(obj1) // {'a':1,'b'{'b1':22,'b2':33}}
console.log(obj1.b.b1) // 22
obj2.b.b1=44;  //obj2重新赋值
console.log(obj1.b.b1) // 44 obj1.b仅拷贝了对象的指引,所以受原obj2的影响

2.4.2 深拷贝

var obj1={'a':1};
var obj2={'b':{'b1':22,'b2':33}};
$.extend(true,obj1, obj2);  //第一个参数设为true表示深复制
console.log(obj1) // {'a':1,'b'{'b1':22,'b2':33}}
console.log(obj1.b.b1) // 22
obj2.b.b1=44;  //obj2重新赋值
console.log(obj1.b.b1) // 22 obj1拷贝了obj2的所有属性以及值,并不受obj2的影响

总结

以上所述是小编给大家介绍的JavaScript中的数组合并方法和对象合并方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 清除输入框中的数据
Apr 13 Javascript
Javascript isArray 数组类型检测函数
Oct 08 Javascript
jQuery之end()和pushStack()使用介绍
Feb 07 Javascript
jquery拖动插件(jquery.drag)使用介绍
Jun 18 Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
有效提高JavaScript执行效率的几点知识
Jan 31 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
JavaScript获取键盘按键的键码(参照表)
Jan 10 Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 Javascript
AngularJS中使用three.js的实例详解
Jul 21 Javascript
layui实现三级导航菜单
Jul 26 Javascript
layui树形菜单动态遍历的例子
Sep 23 Javascript
Node.js使用cookie保持登录的方法
May 11 #Javascript
实例解析Vue.js下载方式及基本概念
May 11 #Javascript
AngularJS模态框模板ngDialog的使用详解
May 11 #Javascript
基于ionic实现下拉刷新功能
May 10 #Javascript
详解各版本React路由的跳转的方法
May 10 #Javascript
React路由管理之React Router总结
May 10 #Javascript
React从react-router路由上做登陆验证控制的方法
May 10 #Javascript
You might like
深入理解PHP内核(二)之SAPI探究
2015/11/10 PHP
如何在node的express中使用socket.io
2014/12/15 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
Python处理文本换行符实例代码
2018/02/03 Python
实例讲解Python爬取网页数据
2018/07/08 Python
Python中logging实例讲解
2019/01/17 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
JAVA代码查错题
2014/10/10 面试题
如何高效率的查找一个月以内的数据
2012/04/15 面试题
金融专业推荐信
2013/11/14 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
幼师自荐信范文
2015/03/06 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
检讨书格式范文
2015/05/07 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
交通安全月活动总结
2015/05/08 职场文书
就业推荐表院系意见
2015/06/05 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书