Looping Arrays : The for-of Loop

Juyeon Lee·2022년 2월 13일
0

배열을 순회하는 방법 중 하나인 for-of 루프에 대해 알아보도록 하자. 예시 코드는 아래와 같다.

const menu = [...restaurant.starterMenu, ...restaurant.mainMenu];

for (const item of menu) console.log(item);

이렇게 for-of를 이용해 간단하게 루프를 돌릴 수 있다. for 루프와 비교하면 훨씬 간단하다. 배열의 길이를 우리가 직접 지정하지 않아도 되기 때문이다.

for-of 루프를 사용해 인덱스도 같이 뽑아주는 방법은 다음과 같다

for (const item of menu.entries()) {
  console.log(item);
}

이렇게 하면 console에 이렇게 결과가 나온다.

(2) [0, 'Focaccia']
(2) [1, 'Bruschetta']
(2) [2, 'Garlic Bread']
(2) [3, 'Caprese Salad']
(2) [4, 'Pizza']
(2) [5, 'Pasta']
(2) [6, 'Risotto']

이 결과를 토대로 보기 좋게 정렬하려면 다음과 같이 코드를 작성할 수 있다.

for(const item of menu.entries()){
  console.log(item)
  console.log(`${item[0] + 1}: ${item[1]}`)
}

배열에서 첫 번째 요소가 인덱스이므로 item[0]으로 인덱스를 가져왔고, 1부터 시작하기를 원하므로 +1을 해주었다. 그리고 아이템은 두 번째 자리에 있는 요소이므로 item[1]를 사용했다.

이것보다 더 간단하게, 구조 분해 할당을 통해 코드를 작성할 수 있다.

for (const [i, el] of menu.entries()) {
  console.log(`${i + 1}: ${el}`);
}

구조 분해 할당을 사용하여 menu.entries()에서 인덱스 i와 요소 el을 각각 변수로 받아 쉽게 사용할 수 있다. 이렇게 깔끔하게 결과가나온다.

1: Focaccia
2: Bruschetta
3: Garlic Bread
4: Caprese Salad
5: Pizza
6: Pasta
7: Risotto

0개의 댓글