
알고리즘을 연습하면서 깨달았습니다...
forEach()에서는 루프 제어가 불가능하다는 것을요.
forEach() 와 return일반적인 for 문에서는 break, continue, return 등의 제어문으로 반복문을 탈출하는 것이 가능합니다.
하지만 어째서인지 forEach() 에서는 동작하지 않죠.
Java를 많이 만지며 익숙해진 탓에 처음에는 이해가 잘 안됐습니다.
for 문 같은데 왜 제어가 안될까?예제를 하나 볼까요?
array = [1, 2, 3, 4];
array.forEach((element) => {
console.log(element);
if (element === 3) return;
});
위 예제에서 3 을 만났을 때 과연 루프가 중단될까요?
아닙니다! arr 배열의 모든 요소가 console.log() 로 출력되는 결과가 나타나요.

forEach() 메서드에 Callback 함수를 전달JavaScript 에서 forEach() 는 내부에 콜백 함수를 전달받고,
따라서 return 명령은 루프 진행에 아무런 영향을 끼치지 않습니다.
다시 말해, 내부 콜백 함수에서 해당 명령이 실행될 뿐 forEach() 자체에서 값을 리턴하는 것이 아닙니다.
forEach() 는 함수다결론은 --> 일반적으로 사용하는 for 문과 다르게 forEach() 는 함수, 즉 메서드입니다.
따라서 반복문이 아닌 함수로 취급되기 때문에 continue 와 break 를 사용하면 Syntax Error 를 내뿜습니다.
forEach() 는 배열의 각 요소를 단순 순회할 경우 사용하고, 반복문으로써의 제어가 필요할때는 for 반복문을 사용해야함을 주의해야겠습니다.
📘 forEach 메소드와 루프 제어문 - 개발자 김철수