Estou tentando iterar através de uma matriz de elementos. A documentação do jQuery diz:
Documentação de jquery.Each ()
Retornar não-falso é o mesmo que uma instrução continue em um loop for, ele irá pular imediatamente para a próxima iteração.
Eu tentei chamar 'return non-false;' e 'não falso'; (sans return), nenhum dos quais pula para a próxima iteração. Em vez disso, eles quebram o ciclo. O que estou perdendo?
javascript
jquery
iteration
Josh
fonte
fonte
Respostas:
O que eles querem dizer com não-falso é:
Portanto, este código:
registrará
one
,two
,four
,five
.fonte
Por 'retornar não-falso', eles significam retornar qualquer valor que não funcionaria como booleano false. Então você poderia voltar
true
,1
,'non-false'
ou qualquer outra coisa que você pode pensar-se.fonte
O tipo de Javascript tem a idéia de 'veracidade' e 'falsidade'. Se uma variável tem um valor então, geralmente 9 como você verá) ela tem 'veracidade' - nula ou nenhum valor tende a 'falsidade'. Os trechos abaixo podem ajudar:
Espero que ajude?
Além disso, vale a pena conferir esses vídeos de Douglas Crockford
update: obrigado @cphpython por detectar os links quebrados - atualizei para apontar para as versões de trabalho agora
A linguagem Javascript
Javascript - As boas partes
fonte
0
também é um valor falso e a negação é verdadeira (e vice-versa para qualquer outro número, por exemplo!-42 === false
).Não se esqueça de que às vezes você pode cair do final do bloco para chegar à próxima iteração:
Em vez de realmente retornar assim:
fonte
O loop só será interrompido se você retornar literalmente
false
. Ex:Isso significa que você pode retornar qualquer outra coisa, inclusive
undefined
, que é o que você devolve se não devolver nada; portanto, você pode simplesmente usar uma declaração de retorno vazia:É possível que isso possa variar de acordo com a versão; isso é aplicável ao jquery 1.12.4. Mas, realmente, quando você sai da parte inferior da função, você também não está retornando nada, e é por isso que o loop continua, então eu esperaria que não houvesse nenhuma possibilidade de que retornar nada não pudesse continuar o loop. A menos que desejem forçar todo mundo a começar a devolver algo para manter o ciclo funcionando, nada deve ser uma maneira de mantê-lo funcionando.
fonte
jQuery.noop () pode ajudar
fonte