javascript - w3school - jquery select loop
Como pular para a próxima iteração em jQuery.each() util? (4)
Eu estou tentando iterar através de uma matriz de elementos. A documentação do jQuery diz:
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 loop. O que estou perdendo?
Não se esqueça de que às vezes você pode simplesmente cair do final do bloco para chegar à próxima iteração:
$(".row").each( function() {
if ( ! leaveTheLoop ) {
... do stuff here ...
}
});
Em vez de realmente retornar assim:
$(".row").each( function() {
if ( leaveTheLoop )
return; //go to next iteration in .each()
... do stuff here ...
});
O Javascript tem a idéia de "veracidade" e "falsidade". Se uma variável tem um valor então, geralmente 9 você verá) ela tem 'verdade' - nula, ou nenhum valor tende a 'falsidade'. Os snippets abaixo podem ajudar:
var temp1;
if ( temp1 )... // false
var temp2 = true;
if ( temp2 )... // true
var temp3 = "";
if ( temp3 ).... // false
var temp4 = "hello world";
if ( temp4 )... // true
Espero que isso ajude?
Além disso, vale a pena conferir esses vídeos de Douglas Crockford
update: obrigado @cphpython por identificar os links quebrados - atualizei para apontar para as versões de trabalho agora
O que eles querem dizer com não-falso é:
return true;
Então esse código:
var arr = [ "one", "two", "three", "four", "five" ];
$.each(arr, function(i) {
if(arr[i] == 'three') {
return true;
}
alert(arr[i]);
});
Irá alertar um, dois, quatro, cinco
Por 'return non-false', eles significam retornar qualquer valor que não funcionaria como booleano false. Então você pode retornar true
, 1
, 'non-false'
ou qualquer outra coisa que você possa imaginar.