본문 바로가기
JavaScript/기초 및 알고리즘 함수

[JS] for in , for of 차이

by tokkiC 2022. 8. 10.

c++ 의 경우 배열을 순회하며 모든 요소에 for문을 적용시키기 위해서 아래와 같은 방식을 사용하였다

for ( auto : 임시변수 )
{
    임시변수에 담은 각 요소마다 적용할 구현부
}

자바스크립트의 경우에는 위와 동일한 것이 for of 이다. 아래처럼 쓰인다

for (let 임시변수 of 돌아야 할 배열명) {
    임시변수에 담은 각 요소마다 적용할 구현부
}

자바스크립트에는 비슷한 것으로 for in 이 있는데, for of 가 배열에서 쓰인다면

for in은 객체를 돌기위한 것이다. 아래처럼 쓰인다. 객체 내의 각 key 마다 대응해서 구현하게 된다

var obj = {
    a: 1,
    b: 2,
    c: 3
};
for (let 임시변수 in obj) {
    console.log(임시변수)   // a, b, c
}

++ 객체를 반복하여 돌때 for of 를 사용하면 에러가 뜨니 조심하자 (for of 는 배열에서만 사용하자)

++ 배열에서 for in 을 사용하면 예상과는 좀 다르게 작동하는데 각요소마다 0부터 +1 씩 증가하는 정수로

     임시변수가 값을 가진다. 이는 객체에서의 키 값을 나타내는 for in 문을 생각하면 흥미로운데,

     배열도 객체이므로 for in을 사용가능한 것이며, 배열의 인덱스 값이 배열이란 객체의 key 값이라는 것을 알 수 있다!

     그 말은 반대로 배열의 각 인덱스의 해당하는 값을 객체의 value 값이라고 알 수 있다!

댓글