js中数组和对象的合并

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)  // 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的影响

原文地址:https://www.cnblogs.com/kid526940065/p/11011523.html

时间: 06-12

js中数组和对象的合并的相关文章

js中数组与对象的遍历

数组遍历: 1.js基本的for遍历 2.jquery提供的each函数 ----------------------------------- $.each(array, function(){ alert(this); }); ----------------------------------- 对象遍历: js: --------------------------------------------- for (var k in obj) { alert(obj[k]): } jque

js中数组,对象,json区别

对于js新手,这是我这周项目总结.包括数组,对象,json区别,以及前后台数据传输 数组:批量存放数据的工具,包括取值,数组的各种操作,[ ]在js中只表示数组,或者访问对象的属性,昨天还碰到了将值转化为数组,进行json字符转转化的例子.下面会给出具体例子 var arrData=["1","2","3']; var arrData=new Array(); var paramvo=[task_id];// 定义数组paramvo,值为[9999],方便

js中数组Array对象的方法sort()的应用

一. sort()方法的介绍 //给一组数据排序 var arrNum = [12,1,9,23,56,100,88,66]; console.log("排序前的数组:"+arrNum); arrNum.sort();//默认按照字母排序 console.log("排序后的数组:"+arrNum); //对数组进行升序排列,将函数作为参数传入 arrNum.sort(function (a,b) { return a-b;//数组中两两比较,结果为正(a>b)

JS中数组和对象的区别

JS中:json对象数组按对象属性排序

var array = [ {name: 'a', phone: 1}, {name: 'b', phone: 5}, {name: 'd', phone: 3}, {name: 'c', phone: 4} ] array.sort(getSortFun('desc', 'phone')); function getSortFun(order, sortBy) { var ordAlpah = (order == 'asc') ? '>' : '<'; var sortFun = new F

js中数组的一常用方法总结

js中一切皆对象,所有对象有的方法在数组中都可以使用,下面来介绍一些常用方法 这里将来方法分为七种分别为:栈方法,队列方法,重排序方法,操作方法,位置方法,迭代方法,归并方法 一.栈方法 :模拟类似栈的LIFO(Last-In-First-Out)数据结构的一些方法 var fruits = [ "apple" ,"banana"  ] ; 1.push : 在数组的末尾插入n项 ,返回新数组长度 eg :  var count = fruits.push(&quo

JS中 document.getElementById 对象

Document 对象 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问. Document 对象集合 集合 描述 all[] 提供对文档中所有 HTML 元素的访问. anchors[] 返回对文档中所有 Anchor 对象的引用. applets 返回对文档中所有 Applet

js中的json对象详细介绍

JSON一种简单的数据格式,比xml更轻巧,在JavaScript中处理JSON数据不需要任何特殊的API或工具包,下面为大家详细介绍下js中的json对象, 1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包. JSON的规则很简单:对象是一个无序的“‘名称:值'对”集合.一个对象以“{”(左括号)开始,“}”(右括号)结束

js中两个对象的比较

代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js中两个对象的比较</title> <script> /* 需求难点描述: 数组和对象,都