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

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

Barbara Streisand
Barbara Streisand원래의
2024-12-28 18:54:11230검색

How to Safely Remove Array Items During Iteration in JavaScript?

루프 내에서 배열 항목 제거: 반복 유지

문제:

배열을 반복하고 항목을 제거하면 다음이 발생할 수 있습니다. splice() 메서드를 사용할 때 예기치 않은 동작이 발생합니다. 항목이 삭제되면 배열의 색인이 다시 생성되어 잠재적으로 후속 요소를 건너뛸 수 있습니다. 이로 인해 언급된 정의되지 않은 변수 오류가 발생합니다.

해결책:

이 문제를 해결하기 위한 두 가지 기본 접근 방식이 있습니다.

  1. 루프 인덱스 감소: splice()를 사용하여 항목을 제거한 후 루프 인덱스를 감소시킵니다. (i--) 재인덱싱을 설명합니다. 이렇게 하면 루프가 올바른 요소로 계속됩니다.
  2. 역방향 반복: 오름차순(i )으로 반복하는 대신 역방향(i--)으로 반복하여 re의 영향을 피합니다. -인덱싱. 이 접근 방식에서는 검사할 다음 항목이 현재 항목보다 낮은 인덱스에 위치하므로 다시 인덱싱해도 영향을 받지 않습니다.

예:

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

역순으로 반복하면 항목을 제거해도 반복의 다음 항목에 영향을 주지 않습니다. 따라서 루프는 중단 없이 계속되며 원하는 대로 항목을 삭제합니다.

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

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