fazendo um loop através de matrizes e removendo itens sem interrupções
no JavaScript, usando o método Splice () para remover itens de uma matriz geralmente apresenta o desafio da iterada através do Array sem o encontro. No código fornecido, o uso de splice () dentro do loop for faz com que a propriedade dos segundos do item de leilão se torne indefinida, levando a erros. Diminua o índice de loop após Splice ()
Após a remoção de um item usando Splice (), você pode diminuir o índice de loop (i) para compensar a re-indexamento da matriz. Isso garante que a próxima iteração continue com o índice correto. leilão = leilão. Leilão. if (Auction.Segunds & lt; 0) { Leilão.auctions.splice (i, 1); eu--; // diminuir o índice de loop } }
2. Itera em reversa
iterar através da matriz em ordem inversa, a re-indexação após splice () não afetará os itens restantes na iteração. enquanto (i--) { ... se (...) { Leilão.auctions.splice (i, 1); } }
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 the loop index } }Ao adotar uma dessas abordagens, você pode iterar com eficiência através de matrizes e remover itens sem encontrar o problema de valor indefinido e garantir a integridade do processo de loop.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3