배열을 반복하고 루프를 끊지 않고 항목 제거
배열을 효과적으로 반복하고 반복을 방해하지 않고 항목을 제거하려면 대안적 접근이 필요하다. 루프 중에 항목을 제거하기 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!