JS의 배열 병합 방법 및 객체 병합 구현 단계에 대한 자세한 설명

php中世界最好的语言
풀어 주다: 2018-05-22 10:45:04
원래의
1485명이 탐색했습니다.

이번에는 JS에서 배열 병합 방법과 객체 병합을 구현하는 단계에 대해 자세히 설명하겠습니다. JS에서 배열 병합 방법과 객체 병합을 구현할 때 주의 사항은 무엇입니까? 보세요.

1 배열 병합

1.1 concat 방법
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 루프 탐색
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;]
로그인 후 복사

1.3 적용

배열 arr1과 배열 arr2 병합, Ar 사용 ray.prototype.push.apply(arr1 , arr2) 또는 arr1.push.apply(arr1,arr2);

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 개체 병합

2.1 $.extend()
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.2 순회 할당
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. .할당()

 원본 객체의 고유한 열거 가능 속성을 대상 객체에 얼마든지 복사한 다음 대상 객체를 반환할 수 있습니다.

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 }, 且目标对象自身也会改变。 
로그인 후 복사

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的影响
로그인 후 복사
이 글의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. , PHP 중국어 웹사이트의 기타 관련 기사를 주목해주세요!

추천 도서:

Node.js Express 설치 및 사용 단계 자세한 설명

노드 프런트엔드 개발 템플릿 엔진 Jade 사용 단계 자세한 설명

위 내용은 JS의 배열 병합 방법 및 객체 병합 구현 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿