转载自:http://www.cnblogs.com/xingxiangyi/p/6416468.html

1 数组合并

1.1 concat 方法

1
2
3
4
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 循环遍历

1
2
3
4
5
6
7
8
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);

1
2
3
4
5
6
7
8
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()

1
2
3
var obj1= {'a': 1};
var obj2= {'b': 1};
var c = $.extend(obj1, obj2);

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

2.2 遍历赋值

1
2
3
4
5
6
7
8
9
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)

1
2
3
//a. 复制一个对象<br>var obj = { a: 1 ,b:2};
var copyObj = Object.assign({}, obj);
console.log(copyObj); // { a: 1,b:2 }<br><br>//b.合并多个对象

1
2
3
4
5
6
7
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)  // 22obj2.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)  // 22obj2.b.b1=44;   //obj2重新赋值
console.log(obj1.b.b1)  // 22 obj1拷贝了obj2的所有属性以及值,并不受obj2的影响

转载于:https://www.cnblogs.com/ooo0/p/7737678.html

js jquery 数组的合并 对象的合并相关推荐

  1. 常用js的数组方法和对象方法

    js常用的数组方法和对象方法 常用js的数组方法和对象方法 数组的方法 对象的方法 常用js的数组方法和对象方法 从此以后也要写博客辣,用来记录常见的问题和碰到的新问题.最近记忆力越来越差了. 数组的 ...

  2. js删除数组中指定对象

    js删除数组中指定对象 需求说明 从数组中移除指定对象函数封装 `removeArray` 从数组中获取指定对象索引函数封装 `getArrayIndex ` 在`Vue`中调用函数使用 需求说明 点 ...

  3. 合并对象、合并数组的方法

    一.合并对象 1.拓展运算符 对象的扩展运算符(...)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中. let obj1 = {name: '小明',sex: '男' }; let obj2 ...

  4. 合并对象 深层合并两个层级很深的对象 js

    如果只有一层也可以通过object.assign(last, before)进行合并 last是合并后的对象 let last = {id: 0, name: 'last', color: 'red' ...

  5. js遍历数组中的对象并拿到值

    拿到一组数组,数组中是对象,想拿到这个对象里面的某个值,可以参考以下例子: 这样就拿到所有n1的值. 想拿到这个对象里面所有对应的值如下: 也可以这样取值: 往数组里面push多个值: js中!!用法 ...

  6. JSP页面使用JS把数组封装成对象

    当我们遇到这种情形,需要把页面中的表格每一行作为一组数据提交到后台保存到数据库,我们需要进行数据的收集. 序号 名称 类别 规格 1 机箱 华硕 GLP800 2 鼠标 雷蛇 DPI500 因为是在页 ...

  7. php 合并对象_PHP合并数组对象

    我有一些问题如何合并这个数组.可以帮助我吗?PHP合并数组对象 第一阵列: Array ( [22] => WP_Post Object ( [ID] => 22 [post_author ...

  8. JS数组去重,JS根据数组里面的对象属性值去重

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 微信小程序开发交流qq群   173683895 js数组简单去重 var arr1 = [1, 2, 3, ...

  9. js获取数组长度,对象成员个数字、符串字数

    Javascript怎么得到数组长度(也就是数组的元素个数)? Javascript怎么获取对象的成员个数? 你肯定想到了array.length!? 那么我们来测试一下下面这个例子. <scr ...

最新文章

  1. 【NLP】Transformer大家庭简介!
  2. eclipse中monokai插件的安装
  3. 2018年9月5日第一贴
  4. OpenShift 4 之通过直接访问内部的 Image Registry 操作容器镜像
  5. Eclipse的Git插件Egit: merge合并冲突具体解决方法
  6. idea php 提示丢失,解决idea 暂存文件或idea切换分支代码丢失的问题
  7. 品牌IP打造的实用性教程
  8. 计算机桌面背景设成白色,电脑桌面背景变白色的了怎么处理啊?
  9. ue 查看 html,网页查看源文件 默认用UltraEdit或记事本打开 修改办法
  10. python+nodejs+vue酒店点餐饮系统项目
  11. linux 根目录变为只读了,如何在 Web 服务器文档根目录上设置只读文件权限 | Linux 中国...
  12. DCDC开关电源学习
  13. 串口,使用交叉还是直连串口线
  14. Git 版本控制的基本使用教程
  15. 抖音qu水印采集下载源码 附带成品软件
  16. 学习英文之社区,博客及源码
  17. 吞吐量QPS、TPS、HPS
  18. idc国内服务器销售排名,IDC:联想排名中国服务器市场榜首!
  19. VirtualApp - 独立式 Resource hook
  20. 【模型指标】LIFT提升图

热门文章

  1. 有道精品课python-网易词典在线翻译
  2. 自学python网站推荐-推荐自学python必入的神仙网站
  3. python能做游戏吗-python能开发游戏吗
  4. LeetCode Clone Graph(搜索问题)
  5. Drawer的使用(一):xml文件中使用
  6. AnalogClock的使用(一)
  7. 题目1188:约瑟夫环
  8. 分类模型的性能评价指标(Classification Model Performance Evaluation Metric)
  9. UVA 10815 Andy's First Dictionary(STL: set)
  10. CVE-2017-0004相关lsass拒绝服务漏洞杂谈