본문 바로가기
개발일지/Web Development

이터러블 사용(for 루프 / forEach / for-of)

by jungwonyu 2024. 4. 9.
728x90

과거

: for  루프 또는 forEach를 사용하여 배열 반복

   
  // for 루프
   for (let n = 0; n < array.length; ++n) {
      console.log(array[n]);
    }
 

  // forEach  
  array.forEach(entry => console.log(entry));
 

 

new!

: 루프 본문에 인덱스가 필요하지 않으면 대신 for-of 사용

 
  // for-of    
  for (const entry of array) {
      console.log(entry);
    }
 

 

 


나는 forEach를 가장 많이 사용하는데, 책에서는 forEach보다는  for-of를 추천했다. 이유가 궁금해서 찾아본 결과를 정리해본다.

 

> forEach는 배열의 요소와 인덱스 모두에 접근할 수 있으나! await을 루프 내부에 쓸 수 없으며, 중간에 루프를 탈출하는 것이 어렵다. (다른 문법의 경우 break로 가능) / (some을 이용하면 탈출할 수 있다고 한다.)

> for-of는 ES6에서 나온 문법이다. 모든 루프를 원하는 대로 순회할 수 있고, await를 사용할 수 있으며, break와 continue를 사용할 수 있다. 또한 키만 접근하거나 혹은 키와 값 모두 접근하는 것이 모두 가능하다.

 

결론: for-of를 사용하면 다른 순회문에서 할 수 있는 모든 것을 할 수 있음 / 성능으로 따지면 forEach가 가장 느리다고 한다.

나의 결론: 되도록이면 for-of를 사용해야겠다.

 

 

참고

https://yceffort.kr/2021/06/best-solution-for-looping-over-array