js中陣列的合併與物件的合併

2021-08-14 07:15:02 字數 1663 閱讀 1330

陣列合併

concat 合併

var a=[1,2,3],b=[4,5,6];

var c=a.concat(b);

console.log(c); //1,2,3,4,5

console.log(a); //1,2,3 不改變本身

迴圈遍歷

var arr1=['a','b'];

var arr2=['c','d','e'];

for(var i=0;iarr1.push(arr2[i]);

console.log(arr1); //['a','b','c','d','e']

var arr1=['a','b'];

var arr2=['c','d','e'];

或者console.log(arr1); //['a','b','c','d','e']

物件合併

$.extend()

var obj1=;

var obj2=;

var c=$.extend(obj1,obj2);

console.log(obj1); //; //obj1 已經被修改

或者var obj3=$.extend({},obj1,obj2);

console.log(obj3); // 不會改變obj1,obj2

遍歷賦值

var obj1=;

var obj2=;

for(var key in obj2)

}obj.assigin()

可以把任意多個的源物件自身的可列舉屬性拷貝給目標物件,然後返回目標物件

使用:object.assign(target,...source)

var obj=;

var copyobj=object,assign({},obj);

console.log(copyobj); //

var o1=;

var o2=;

var o3=;

var obj=object.assign(o1,o2,o3);

console.log(obj); //;

console.log(o1);  //; 目標物件自身會改變

物件的淺拷貝

var obj1=;

var obj2=};

$.extend(obj1,obj2);  //obj1拷貝了obj2的屬性

console.log(obj1);  //}

console.log(obj1.b.b1);  //22

obj2.b.b1=44;  // obj2被重新賦值

console.log(ob1.b.b1)  //44 obj.b僅拷貝了物件的指引,所以受原obj2的影響

物件的深拷貝

var obj1=;

var obj2=};

$.extend(true,obj1,obj2);  //第乙個引數設定為 true 表示深複製

console.log(obj1);  //}

console.log(obj1.b.b1);  //22

obj2.b.b1=44;  //obj2重新賦值

console.log(obj1.b.b1);  //22 obj1拷貝的obj2的所有的屬性以及值,並不受obj2的影響

js中陣列的合併和物件的合併

vara 1,2,3 b 4,5,6 varc a.concat b console.log c 1,2,3,4,5,6 console.log a 1,2,3 不改變本身 vararr1 a b vararr2 c d e for vari 0 iarr1.push arr2 i console....

js中陣列的合併和物件的合併

深拷貝 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 不改變本身var arr1 a b var arr2 c d e for var i 0 i可以把任意多個的源物件自身的可列舉...

js中陣列的合併和物件的合併

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 不改變本身 var arr1 a b var arr2 c d e for var i 0 ivar arr1 a b var arr...