본문 바로가기

Programing/JavaScript

for...in 문 // 객체에서 중복된 값을 제외하고 객체 추가하기

for...in 문 문법

자바스크립트에서 for...in 문은 객체의 프로퍼티를 순회하는 데 사용된다. 문법은 다음과 같다.

1
2
3
for (변수 in 객체){
    구문
}
cs

 

- for...in 문의 본문은 객체의 각 프로퍼티에 대해 한 번씩 실행된다.

- 각 반복에 앞서 객체 프로퍼티 중 하나의 이름이 변수에 문자열 타입으로 할당된다.

 

객체에 대한 for...in 문 예제

1
2
3
4
5
6
7
8
9
10
11
var obj = ;
for (var key in obj){
    console.log("name: " + key + "; value: " + obj[key]);
}
 
 
/* 
name: x; value: 10
name: y; value: 11
name: z; value: 12
*/
cs

 

배열에 대한 for...in 문 예제

1
2
3
4
5
6
7
8
9
10
11
var array = [10,11,12];
for (var key in array){
    console.log("name: " + key + "; value: " + array[key]);
}
 
 
/* 
name: 0; value: 10
name: 1; value: 11
name: 2; value: 12
*/
cs

 

열거할 수 없는 프로퍼티

자바스크립트에서 일부 프로퍼티는 열거할 수 없는 것으로 표시돼 있어서 이러한 프로퍼티는 for...in 문으로 열거할 수 없으며, 모든 내장 메서드를 비롯해 각종 내장 프로퍼티는 열거되지 않는다.

 

반면 모든 사용자 정의 프로퍼티는 열거할 수 있다.

 

 

 

출처 : http://codingnuri.com/javascript-tutorial/javascript-for-in-statement.html

 


 

객체에서 중복된 값을 제외하고 객체 추가하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function extend(obj1, obj2) {
  for(var key in obj2) {
    if(key in obj1) {
      obj1[key];
    } else {
      obj1[key] = obj2[key];
    }
  } return obj1;
}
 
 
//-------------------------------------------
 
var obj1 = {
  a: 1,
  b: 2
};
var obj2 = {
  b: 4,
  c: 3
};
 
extend(obj1, obj2);
 
console.log(obj1); // --> 
console.log(obj2); // --> 
cs