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
'개발일지 > Web Development' 카테고리의 다른 글
객체 복사하기 Object.assign과 스프레드 연산자 (0) | 2024.04.16 |
---|---|
객체에 함수 타입 저장 (0) | 2024.04.16 |
피셔 예이츠 셔플 Fisher Yates Shuffle 알고리즘(배열 섞기) (0) | 2023.11.09 |
[JavaScript] audio의 duration 구하기(재생시간) (0) | 2023.09.27 |
[CSS] 스타일 시트 CSS 브라우저 별 접두어 (0) | 2022.11.29 |