2023년 3월 10일

KSY

JavaScript forEach()메서드에 대해서

forEach()메서드는 무엇일까?

forEach( ) 메서드는 주어진 함수를 배열 요소 각각에 대해 오름차순으로 한 번씩 실행한다. 삭제했거나 초기화하지 않은 인덱스 속성에 대해서는 실행하지 않는다.

const array1 = ['a','b','c'];
array1.forEach(x => console.log(x));

//a
//b
//c
arr.forEach(callback(currentvalue,[, index[, array]])[,thisArg])

forEach()메서드는 원본 배열을 변경하지만 반환값이 없다. 그래서 메서드 체인의 중간에서 사용하면 해당 메서드 체인에서 undefined 값을 반환한다.

→ 메서드 체인에서 forEach()메서드를 사용하여 작업을 수행하고 그 결과를 다음 메서드로 전달하는 것이 불가능하다.

예시)

const numbers= [1,2,3,4,5];

const squaredNumbers = numbers.forEach(num => num ** 2).map( num => num *2 );

console.log(squaredNumbers);
//Uncaught TypeError: Cannot read properties of undefined (reading 'map')

위 코드처럼 오류가 뜬다. 왜냐하면 forEach()는 undefined을 반환하기 때문에 map()메서드에서 오류가 발생하기 때문이다.

그렇기 때문에 forEach() 메서드를 메서드 체인에서 사용하고자 한다면, 그냥 새로운 배열을 반환하는 메서드를 사용하는 것이 편하다.