>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 루프 중에 배열 항목을 안전하게 제거하는 방법은 무엇입니까?

JavaScript에서 루프 중에 배열 항목을 안전하게 제거하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-24 05:43:20588검색

How to Safely Remove Array Items During a Loop in JavaScript?

배열을 반복하고 루프를 끊지 않고 항목 제거

배열을 효과적으로 반복하고 반복을 방해하지 않고 항목을 제거하려면 대안적 접근이 필요하다. 루프 중에 항목을 제거하기 위해 splice()를 사용할 때 배열의 재인덱싱으로 인해 문제가 발생할 수 있습니다.

한 가지 해결 방법은 항목을 제거한 후 루프 카운터(i)를 감소시켜 재인덱싱을 보상하는 것입니다. -indexing.

for (i = 0, len = Auction.auctions.length; i < len; i++) {
    auction = Auction.auctions[i];
    Auction.auctions[i]['seconds'] --;
    if (auction.seconds < 0) {
        Auction.auctions.splice(i, 1);
        i--; // Decrement to compensate for re-indexing
    }           
}

또는 항목을 제거해도 이전 항목에 영향을 주지 않으므로 역순으로 반복하여 문제를 해결할 수도 있습니다.

var i = Auction.auctions.length
while (i--) {
    ...
    if (...) {
        Auction.auctions.splice(i, 1);
    }
}

이러한 전략 중 하나를 사용하면 배열을 효과적으로 반복하고, 항목을 제거하고, 예기치 않게 루프를 중단하지 않고 지속적인 반복을 유지할 수 있습니다.

위 내용은 JavaScript에서 루프 중에 배열 항목을 안전하게 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.