당신이 몰랐던 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

그게 다야! 오늘 새로운 것을 배웠기를 바랍니다.