Se non si utilizza elementi numerate in sequenza, dovrete scorrere fino a colpire il primo:
var firstIndex = 0;
while (firstIndex < myarray.length && myarray[firstIndex] === undefined) {
firstIndex++;
}
if (firstIndex < myarray.length) {
var firstElement = myarray[firstIndex];
} else {
// no elements.
}
o qualche costruzione equivalentemente sciocco. Questo ti fa ottenere l'indice del primo oggetto, che potresti o non vorresti importare.
Se questo è qualcosa che devi fare spesso, dovresti mantenere un riferimento a prima vista al primo indice valido corrente, quindi questa operazione diventa un'operazione O (1) invece di O (n) ogni volta. Se hai spesso bisogno di scorrere un array veramente spartoso, considera un'altra struttura di dati, come tenere un oggetto accanto a esso che esegue il back-mapping dei risultati ordinali agli indici, o qualcosa che si adatti ai tuoi dati.
fonte
2010-08-25 23:05:36
Che cosa stai usando come indice di matrice allora? –