반응형
JavaScript 함수 에서 forEach와 return 사용 시 주의사항, 해결방법
코드 내에서 JavaScript의 forEach 함수를 사용하면서 반복을 돌면서 특정 조건에 따라 함수를 종료하고 싶은 상황을 마주했습니다. 하지만 forEach 함수 내부에서 사용한 return은 예상대로 동작하지 않았습니다. 이 글에서는 forEach문이 return을 하지 못하는 이유와 해결방법에 대해 소개해드리겠습니다.
ForEach 안에서는 return이 안 된다
forEach와 return의 동작
forEach 함수는 반복 중간에 return을 사용하더라도 해당 return이 forEach 함수 자체를 종료하는 것이 아니라 내부 반복문만 종료하고 다음으로 넘어갑니다. 이는 함수 자체의 반환값에는 영향을 주지 않습니다.
function exampleForEach(arr) {
arr.forEach((item) => {
if (item === 2) {
console.log("Found 2");
return; // 이 부분은 forEach 자체를 종료하지 않음
}
console.log(item);
});
}
해결방법
for...of 루프 사용 문제를 해결하기 위해 for...of 루프를 사용할 수 있습니다. 이를 통해 반복 도중에 return을 사용하여 함수를 종료시킬 수 있습니다.
function exampleForOf(arr) {
for (const item of arr) {
if (item === 2) {
console.log("Found 2");
return; // 이 부분에서 함수가 종료됨
}
console.log(item);
}
}
두 방식 비교
두 예시 코드를 비교해보면, forEach는 내부 반복문만 종료하고 다음 요소로 넘어가지만, for...of 루프는 해당 지점에서 함수 전체를 종료시킬 수 있습니다. 따라서 함수 전체를 종료하고자 할 때는 for...of를 사용하는 것이 더 적합합니다.
▼ 많이 찾아보는 javascript 글 ▼
'Programming & Platform > JavaScript' 카테고리의 다른 글
3분 만에 배우는 자바스크립트 객체 지향 프로그래밍, 기초부터 실전까지 (0) | 2024.03.12 |
---|---|
자바스크립트 프로토타입으로 배우는 객체 생성과 상속의 모든 것 (0) | 2024.03.12 |
JavaScript 이벤트 핸들러 쉽게 사용하기, 구문, 활용, 예제 코드 (1) | 2024.01.01 |
JavaScript includes 간편 사용법, 구문, 예시 코드 (0) | 2023.12.31 |
JavaScript <script> 태그의 defer 속성, async와 차이 (0) | 2023.12.30 |