당신이 몰랐던 3 가지
티 베리 우 오 프레아
팔로우
6 월 26,2018·3 분 읽기
당신은 당신이forEach
루프가 어떻게 작동하는지 정확히 알고 있다고 생각합니까?”break
또는return
또는continue
를 쉽게 사용할 수있는 일반for
루프”.
오늘은forEach
루프에 대해 알지 못했던 3 가지를 보여 드리겠습니다.
아래 코드가1 2
을 인쇄 한 다음 중지 할 것이라고 생각하십니까?
array = ;array.forEach(function (element) {
console.log(element);
if (element === 2)
return;
});// Output: 1 2 3 4
아니,그렇지 않을거야.자바 배경에서 온다면,어떻게 가능한지 스스로에게 물어볼 것입니다.
그 이유는 우리가forEach
함수에서 콜백 함수를 전달하기 때문입니다.이 함수는 일반 함수처럼 작동하며 각 요소에 적용됩니다.
:
예외를 던지는 것 외에는
forEach()
루프를 중지하거나 중단할 방법이 없습니다. 이러한 동작이 필요한 경우forEach()
방법이 잘못된 도구입니다.
위의 코드를 다시 작성해 보겠습니다.:
const array = ;const callback = function(element) {
console.log(element);
if (element === 2)
return; // would this make a difference? no.
}for (let i = 0; i < array.length; i++) {
callback(array);
}// Output: 1 2 3 4
return
문은 각 반복에서 각 요소에 함수를 적용하므로 차이가 나지 않으므로 요소가 2 일 때 한 번 종료해도 상관 없습니다.
forEach
루프가 아래 예에서break
이 될 것이라고 생각하십니까?
const array = ;array.forEach(function(element) {
console.log(element);
if (element === 2)
break;
});// Output: Uncaught SyntaxError: Illegal break statement
아니요,break
명령이 기술적으로 루프에 없기 때문에 실행되지 않습니다.
해결책?
일반for
루프를 사용하십시오. 아무도 당신을 비웃지 않을 것입니다.
const array = ;for (let i = 0; i < array.length; i++) {
console.log(array);
if (array === 2)
break;
}// Output: 1 2
아래 코드가2
인쇄를 콘솔로 건너 뛰고1 3 4
만 표시 할 수 있습니까?
const array = ;array.forEach(function (element) {
if (element === 2)
continue;
console.log(element);
});// Output: Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement
아니요,continue
명령어가break
명령어와 비슷한 루프에 없기 때문에 실행되지 않습니다.
해결책?
일반for
루프를 다시 사용하십시오.
for (let i = 0; i < array.length; i++) {
if (array === 2)
continue;
console.log(array);
}// Output: 1 3 4
그게 다야! 오늘 새로운 것을 배웠기를 바랍니다.