배열의 모든 요소를 함수에 입력하여 가공할 때 쓰는 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
반복문에서 사용하는 continue
나 break
를 쓰면??
함수안에서 사용할 수 없으므로, syntax error가 뜬다.
MDN의 forEach문서에 다음의 내용이 포함되어 있다.
예외를 발생시키는 경우를 제외하고는
forEach() 루프를 중단시킬 방법은 없다.
만약 그러한 목적으로 forEach() 메소드를 사용하는것은 잘못된 방법이다.
따라서 continue
나 break
를 써야한다면,
직접 for루프
를 사용해줘야 한다.
'개인공부 > TIL(Today I Learned)' 카테고리의 다른 글
TIL 50일차_시간복잡도(Time Complexity) (0) | 2021.03.09 |
---|---|
TIL 49일차_Set 객체 (0) | 2021.03.08 |
TIL 47일차_자료구조: 그래프와 트리 (0) | 2021.03.06 |
TIL 46일차_알고리즘문제_잘린 사각형의 개수 (0) | 2021.03.05 |
TIL 45일차_알고리즘_이진탐색트리 (0) | 2021.03.04 |