This time I will show you how to use JS to merge arrays and objects. What are the precautions for using JS to merge arrays and objects. The following is a practical case. Let’s take a look.
1 Array merging
1.1 concat method
1 2 3 4 | var a=[1,2,3],b=[4,5,6];
var c=a.concat(b);
console.log(c);
console.log(a);
|
Copy after login
1.2 Loop traversal
1 2 3 4 5 6 | var arr1=[ 'a' , 'b' ];
var arr2=[ 'c' , 'd' , 'e' ];
for ( var i=0;i<arr2.length;i++){
arr1.push(arr2[i])
}
console.log(arr1);
|
Copy after login
1.3 apply
To merge array arr1 and array arr2, use Array.prototype.push.apply(arr1, arr2) or arr1.push.apply( arr1,arr2);
1 2 3 4 5 | var arr1=['a','b'];
var arr2=['c','d','e'];
Array.prototype.push.apply(arr1,arr2);
arr1.push.apply(arr1,arr2);<br>console.log(arr1)
|
Copy after login
2 Object merge
2.1 $.extend()
1 2 3 4 5 | var obj1= { 'a' : 1};
var obj2= { 'b' : 1};
var c = $.extend(obj1, obj2);
console.log(obj1);
|
Copy after login
2.2 Traversal assignment
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>
使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问会避免原型对象扩展带来的干扰
obj1[key]=obj2[key];
}
}
console.log(obj1);
|
Copy after login
2.3 Obj.assign()
You can copy any number of the source object’s own enumerable properties to the target object, and then Return the target object.
1 2 3 4 5 6 7 8 9 10 | Object.assign(target, ...sources)
var copyObj = Object.assign({}, obj);
console.log(copyObj);
var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = Object.assign(o1, o2, o3);
console.log(obj);
console.log(o1);
|
Copy after login
2.4 Deep copy and shallow copy of object
2.4.1 Shallow copy
1 2 3 4 5 6 7 | var obj1={ 'a' :1};
var obj2={ 'b' :{ 'b1' :22, 'b2' :33}};
$.extend(obj1, obj2);
console.log(obj1)
console.log(obj1.b.b1)
obj2.b.b1=44;
console.log(obj1.b.b1)
|
Copy after login
2.4.2 Deep copy
1 2 3 4 5 6 7 | var obj1={ 'a' :1};
var obj2={ 'b' :{ 'b1' :22, 'b2' :33}};
$.extend(true,obj1, obj2);
console.log(obj1)
console.log(obj1.b.b1)
obj2.b.b1=44;
console.log(obj1.b.b1)
|
Copy after login
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
Detailed introduction to the installation and use of Node.js Express
How to operate Node.js using jade template engine
The above is the detailed content of How to use JS to merge arrays and objects. For more information, please follow other related articles on the PHP Chinese website!