개인공부/TIL(Today I Learned)

TIL 48일차_forEach메소드와 루프제어문

soon327 2021. 3. 7. 00:21

배열의 모든 요소를 함수에 입력하여 가공할 때 쓰는 forEach 메소드!
오늘 forEach메소드를 쓰다가
예외처리를 해줘야했는데 어떻게 처리해야할지 고민했다.

나는 forEach 메소드는 for루프안에서 각 요소를 함수에 넣어 실행시킨다고 생각했기때문에,
for문의 continue를 써야할지, 함수의 return으로 함수를 중단시켜야할지 고민했는데,

결론부터 말하면 return을 쓰면 된다!

forEach 메소드 내부에서의 예외처리

생각해보면 쉬운문제다.😋
forEach는 이미 내장되어있는 함수이고,
우리가 사용할 때 조작하는 내용은, 콜백함수안의 내용이다.

따라서 함수에 예외처리를 할때와 마찬가지로,
return을 사용해주면 된다.

let array = [1,2,3,4];

array.forEach(el => {
    if(el === 2) return;
    console.log(el);
});

//실행결과: 1 3 4

반복문에서 사용하는 continuebreak를 쓰면??
함수안에서 사용할 수 없으므로, syntax error가 뜬다.

MDN의 forEach문서에 다음의 내용이 포함되어 있다.

예외를 발생시키는 경우를 제외하고는
forEach() 루프를 중단시킬 방법은 없다.
만약 그러한 목적으로 forEach() 메소드를 사용하는것은 잘못된 방법이다.

따라서 continuebreak를 써야한다면,
직접 for루프를 사용해줘야 한다.