[Javascript] Come saltare alla prossima iterazione in jQuery.each () util?


Answers

Con 'return non-false', intendono restituire qualsiasi valore che non funzionerebbe con il valore booleano false. Quindi potresti restituire true , 1 , 'non-false' o qualsiasi altra cosa tu possa pensare.

Question

Sto cercando di scorrere attraverso una serie di elementi. La documentazione di jQuery dice:

documentazione jquery.Each ()

Restituire non-false equivale a un'istruzione continue in un ciclo for, salterà immediatamente alla successiva iterazione.

Ho provato a chiamare 'return non-false;' e 'non falso;' (senza ritorno) nessuno dei due salta alla successiva iterazione. Invece, rompono il ciclo. Cosa mi manca?




Non dimenticare che a volte puoi semplicemente cadere dalla fine del blocco per passare alla successiva iterazione:

$(".row").each( function() {
    if ( ! leaveTheLoop ) {
        ... do stuff here ...
    }
});

Invece di tornare in questo modo:

$(".row").each( function() {
    if ( leaveTheLoop ) 
        return; //go to next iteration in .each()
    ... do stuff here ...
});



Il ciclo si interrompe solo se ritorni letteralmente false . Ex:

// this is how jquery calls your function
// notice hard comparison (===) against false
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
   break;
}

Ciò significa che puoi restituire qualsiasi altra cosa, inclusa la undefined , che è ciò che ritorni se non restituisci nulla, quindi puoi semplicemente usare una dichiarazione di reso vuota:

$.each(collection, function (index, item) {
   if (!someTestCondition)
      return; // go to next iteration

   // otherwise do something
});

È possibile che questo potrebbe variare in base alla versione; questo è applicabile a jQuery 1.12.4. Ma in realtà, quando esci dal fondo della funzione, non restituisci nulla, ed è per questo che il ciclo continua, quindi mi aspetto che non ci sia alcuna possibilità che restituire nulla non possa continuare il ciclo. A meno che non vogliano costringere tutti a iniziare a restituire qualcosa per mantenere il ciclo, il ritorno di nulla deve essere un modo per continuare.