>  기사  >  웹 프론트엔드  >  JS를 사용하여 배열과 객체를 병합하는 방법

JS를 사용하여 배열과 객체를 병합하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-05-30 11:36:131793검색

이번에는 JS를 사용하여 배열과 객체를 병합하는 방법과 JS를 사용하여 배열과 객체를 병합할 때 어떤 주의사항

이 있는지 보여드리겠습니다. 다음은 실제 사례입니다. 살펴보겠습니다. + Array.prototype.push.apply(arr1 , arr2) 또는 arr1.push.apply(arr1,arr2);

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 不改变本身
2 Object merge

2.1 $.extend()

var arr1=['a','b'];
var arr2=['c','d','e'];
for(var i=0;i<arr2.length;i++){
   arr1.push(arr2[i]) 
}
console.log(arr1);//[&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;]
를 사용하세요. 2.2 순회 할당

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

 원본 객체의 열거 가능한 속성 중 원하는 수를 대상 객체에 복사한 다음 대상 객체를 반환할 수 있습니다.

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.4 객체의 딥 카피와 얕은 카피2.4.1 얕은 카피
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.4.2 딥 카피

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 }, 且目标对象自身也会改变。 
이 글의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. , PHP 중국어 웹사이트의 기타 관련 기사를 주목해주세요!

추천 도서:

Node.js Express 설치 및 사용에 대한 자세한 소개

Jade 템플릿 엔진을 사용하여 Node.js를 작동하는 방법

위 내용은 JS를 사용하여 배열과 객체를 병합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.