본문 바로가기

javascript

for... in

구문


for( let index in testArray ) {
  console.log( testArray[index], index );
}






설명 & 예제


let testArray = [1, 2, 3, 4, 5]; for( let index in testArray ) { console.log( testArray[index], index ); } result  1 "0"  2 "1"  3 "2"  4 "3"  5 "4"


let testArray2 = ['일', '이', '삼', '사', '오'];

for( let index in testArray2 ) {
  console.log( testArray2[index], index+1 );
}

result
 일 01
 이 11
 삼 21
 사 31
 오 41



결과를 보면 index에는 int 형이아닌 string 형 숫자가 들어가는 것을 알 수 있다.





let testObject = {
  year: 2016, 
  month: 12, 
  date: 5, 
  day: Monday
};

for(let key in testObject) {
  console.log(key, testObject2[key]);
}

result
 year 2016
 month 12
 date 5
 day Monday


testObject에 object를 주면 object의 키를 순회한다( array에서 사용하는 것 보다는 object에서 사용하는 것이 더 유용!)




let testArray = [1, 2, 3, 4, 5];

testArray.introduce = 'I am a Array';

console.log(testArray); // [1, 2, 3, 4, 5]

for (index in testArray) {
  console.log(index);
}

result
 0
 1
 2
 3
 4
 introduce


array에 확장 속성으로 testArray.introduce = 'I am a Array' 이렇게 주고 for in  문으로 testArray의 index를 콘솔로 출력했더니 확장 속성까지 순회하는 것을 알 수 있다.




+


const testObject = { test1: 1, test2: 2 } for(const index in testObject) { // 각각의 반복에서 새로운 바인딩을 얻음 console.log(index); } for(let index in testObject) { // 여기에서 index는 각각의 루프 스텝에서 재정의 된다(재 할당이 아님) console.log(index); }


for ...in, for ...of 문에서 index 부분에 let 보다는 const를 쓰는 것이 더 나은 방법!





for in 문이 효율이 떨어진다고 잘 사용하지 않는 다는 이야기를 듣고 확실하게 이해가 되지 않아서 찾아보게 되었다.

for in 문을 array와 사용하는 것은 효율적이지 못한 것같다.

object의 키를 순회할 필요가 있을 때 사용하는 것이 좋을 것같다.




'javascript' 카테고리의 다른 글

기본 표현식  (0) 2016.12.22
변수의 유효범위  (0) 2016.12.20
숫자  (0) 2016.12.13
타입, 값, 변수  (0) 2016.12.13
reduce  (0) 2016.12.01