스택큐힙리스트

Array.forEach를 호출하는 것처럼 단락 회로가 발생합니다. 본문

카테고리 없음

Array.forEach를 호출하는 것처럼 단락 회로가 발생합니다.

스택큐힙리스트 2023. 3. 26. 03:35
반응형

[1,2,3].forEach(function(el) {

if(el === 1) break;

});

자바스크립트의 새로운 forEach 방법을 사용하여 이것을 어떻게 할 수 있나요? return; , return false; 및 break 을 시도해 보았지만 break 는 충돌하고 return 는 반복을 계속하는 것 외에는 아무것도 하지 않습니다.

답변 1

break을(를) forEach에서 내장된 능력으로 실행할 수는 없습니다. 실행을 중단하려면 어떤 종류의 예외를 던져야 합니다. 예를 들어,

var BreakException = {};

try {

[1, 2, 3].forEach(function(el) {

console.log(el);

if (el === 2) throw BreakException;

});

} catch (e) {

if (e !== BreakException) throw e;

}

자바스크립트 예외는 매우 예쁘지 않습니다. 진짜로 내부에서 하는 경우에는 전통적인 for 루프가 더 적합할 수 있습니다.

Array#some을 사용하세요.

대신에 Array#some를 사용하십시오.

[1, 2, 3].some(function(el) {

console.log(el);

return el === 2;

});

이것은 콜백이 배열 순서대로 실행되면서 어떤 콜백이 true 를 반환하면 다른 콜백의 실행을 중지하고 바로 true 를 반환하기 때문에 작동합니다.

some , 그것의 역수는 every (이것은 return false 에서 멈출 것입니다), 그리고 forEach 모두 ECMAScript 5판 메서드입니다. 이들은 브라우저에서 누락되어 있는 경우에 Array.prototype 에 추가되어야합니다.

Array#every을 사용하세요.

[1, 2, 3].every(v => {

if (v > 2) {

return false // break

}

console.log(v);

return true // must return true if doesn't break

});

답변 2

제목: Array.forEach의 단축 회로: break를 호출하는 것과 같은 효과

Array.forEach는 자바스크립트에서 배열을 반복할 때 일반적으로 사용되는 메서드 중 하나입니다. 그러나 종종 개발자들은 break와 같은 효과를 내기 위해 이를 단축 회로로 사용하고 싶어합니다. 이 기능에 대해 자세히 살펴보겠습니다.

Array.forEach는 콜백 함수를 사용하여 배열의 각 요소를 처리합니다. 배열의 모든 요소를 처리하면서 중간에 반복문을 중지하거나 빠져나오는 것은 불가능합니다. 따라서 종종 반복을 조기 종료해야 하는 경우가 있습니다. 예를 들어 특정 요소를 찾았는데 그 이후의 요소들은 더 이상 처리할 필요가 없는 경우 등이 그것입니다.

이러한 경우에는 다른 메서드를 사용해야 합니다. 일반적으로 for 루프를 사용하여 반복문을 수동으로 생성하고 조기에 중지합니다. 다음은 예시 코드입니다.

```

var arr = [1, 2, 3, 4, 5];

for (var i = 0; i < arr.length; i++) {

if (arr[i] === 3) {

break;

}

console.log(arr[i]);

}

```

그러나 이를 단축 회로로 작성할 수 있습니다. Array.some 메서드는 배열의 각 요소를 처리하면서 조건이 충족되면 반복을 중지합니다. 이를 활용하여 단축 회로를 작성할 수 있습니다.

```

var arr = [1, 2, 3, 4, 5];

arr.some(function(elem) {

if (elem === 3) {

return true;

}

console.log(elem);

});

```

Array.some의 콜백 함수는 참을 반환하는 경우 반복을 중지합니다. 따라서 위의 코드에서는 일치하는 요소를 찾으면 true를 반환하여 반복을 중지하고 나머지 요소들은 처리합니다.

Array.forEach 단축 회로를 사용하면 코드를 더 간결하고 가독성이 좋게 작성할 수 있습니다. 또한 성능 면에서도 Array.some이 일반적으로 for 루프보다 빠르기 때문에 이점이 있습니다.

그러나 단점도 있습니다. Array.forEach 단축 회로를 사용하면 일부 개발자들이 코드의 의도를 이해하는 것이 어려울 수 있습니다. 또한 단축 회로를 계속해서 사용하면 오히려 코드의 복잡성이 증가할 수 있습니다.

결론적으로, Array.forEach의 단축 회로를 사용하여 break와 같은 효과를 내는 것이 가능합니다. 그러나 이를 과도하게 사용하면 코드의 복잡성이 증가할 수 있으므로 적절히 활용하는 것이 중요합니다.

반응형
Comments