자바스크립트에서 forEach()가 무엇인지 알아보고 다양한 예제로 사용 방법을 알아봅니다.
forEach()는 배열을 순회하면서 인자로 전달한 함수를 호출하는 반복문입니다. 배열 뿐만 아니라, Set이나 Map에서도 사용 가능합니다.
1. forEach() syntax
forEach()의 문법은 아래와 같으며, 함수로 value, index, array를 전달할 수 있습니다.
arr.forEach(func(value, index, array))- value : 현재 순회 중인 요소
- index : 현재 순회 중인 요소의 index
- array : 배열 객체
2. forEach()로 배열 순회
아래 코드는 forEach로 배열을 순회하면서 모든 요소를 출력하는 예제입니다. arr.forEach()의 인자로 함수를 전달하면 배열의 모든 요소를 순회할 때, 함수의 인자로 요소를 전달합니다.
function myFunc(item) {
console.log(item);
}
const arr = ['apple', 'kiwi', 'grape', 'orange'];
arr.forEach(myFunc);Output:
apple
kiwi
grape
orange3. forEach()로 배열 순회 : Lambda(Arrow function)로 구현
위의 예제는 아래와 같이 Lambda 표현식으로 구현할 수 있습니다. 이렇게 구현하는 것이 코드가 간단합니다.
const arr = ['apple', 'kiwi', 'grape', 'orange'];
arr.forEach((item) => {
console.log(item);
});Output:
apple
kiwi
grape
orange4. forEach()로 배열 순회 : value, index를 인자로 받기
위의 예제는 forEach에 전달되는 함수에서 value(item)만 받았는데, 아래 예제는 value, index를 인자로 전달 받고 출력합니다.
const arr = ['apple', 'kiwi', 'grape', 'orange'];
arr.forEach((item, index) => {
console.log("index: " + index + ", item: " + item);
});Output:
index: 0, item: apple
index: 1, item: kiwi
index: 2, item: grape
index: 3, item: orange5. forEach()로 배열 순회 : value, index, array를 인자로 받기
다음은 함수에서 value, index, arr을 모두 전달 받아 출력하는 예제입니다.
const arr = ['apple', 'kiwi', 'grape', 'orange'];
arr.forEach((item, index, arr) => {
console.log("index: " + index + ", item: " + item
+ ", arr[" + index + "]: " + arr[index]);
});Output:
index: 0, item: apple, arr[0]: apple
index: 1, item: kiwi, arr[1]: kiwi
index: 2, item: grape, arr[2]: grape
index: 3, item: orange, arr[3]: orange6. Set에서 forEach()로 요소 순회
Set에서도 forEach를 사용할 수 있습니다. 아래와 같이 Set의 모든 요소를 순회하면서 출력할 수 있습니다.
const set = new Set([1, 2, 3]);
set.forEach((item) => console.log(item));Output:
1
2
37. Map에서 forEach()로 요소 순회
Map에서도 forEach를 사용할 수 있습니다. 아래와 같이 Map의 모든 요소를 순회하면서 value를 출력할 수 있습니다.
let map = new Map();
map.set('name', 'John');
map.set('age', '30');
map.forEach ((value) => console.log(value));Output:
John
30위의 예제에서는 value만 함수의 인자로 전달받았는데, 아래와 같이 key와 value를 함께 전달받을 수도 있습니다.
let map = new Map();
map.set('name', 'John');
map.set('age', '30');
map.forEach ((value, key) => console.log("key: " + key + ", value: " + value));Output:
key: name, value: John
key: age, value: 30Related Posts
- ESLint warning, Expected '===' and instead saw '==' eqeqeq
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화