Alcuni dei modi seguenti per diverse circostanze.
Nella maggior parte dei casi normali, è il modo più semplice per accedere al primo elemento
yourArray[0]
ma questo richiede di verificare se [0] esiste realmente.
Ci sono casi del mondo reale in cui non ti interessa l'array originale e non vuoi controllare se esiste un indice, vuoi solo ottenere il primo elemento o non definito in linea.
In questo caso, puoi usare il metodo shift () per ottenere il primo elemento, ma fai attenzione che questo metodo modifica l'array originale (rimuove il primo elemento e lo restituisce). Pertanto la lunghezza di un array è ridotta di uno. Questo metodo può essere utilizzato nei casi inline in cui è sufficiente ottenere il primo elemento, ma non ti interessa l'array originale.
yourArray.shift()
La cosa importante da sapere è che i due precedenti sono solo un'opzione se l'array inizia con un indice [0].
Ci sono casi in cui il primo elemento è stato eliminato, ad esempio, elimina yourArray [0] lasciando l'array con "buchi". Ora l'elemento in [0] è semplicemente indefinito, ma vuoi ottenere il primo elemento "esistente". Ho visto molti casi reali di questo.
Quindi, supponendo che non abbiamo conoscenza dell'array e della prima chiave (o sappiamo che ci sono buchi), possiamo ancora ottenere il primo elemento.
Puoi usare find () per ottenere il primo elemento.
Il vantaggio di find () è la sua efficienza quando esce dal loop quando viene raggiunto il primo valore che soddisfa la condizione (maggiori informazioni su questo sotto). (È possibile personalizzare la condizione per escludere anche valori null o altri valori vuoti)
var firstItem = yourArray.find(x=>x!==undefined);
Vorrei anche includere filter () qui come opzione per prima "riparare" l'array nella copia e quindi ottenere il primo elemento mantenendo intatto l'array originale (non modificato).
Un altro motivo per includere filter () qui è che esisteva prima di find () e molti programmatori lo hanno già usato (è ES5 contro find () essendo ES6).
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
Avviso che filter () non è in realtà un modo efficiente (filter () scorre attraverso tutti gli elementi) e crea un altro array. Va bene usare su array di piccole dimensioni poiché l'impatto sulle prestazioni sarebbe marginale, più vicino all'uso di ForEach, ad esempio.
(Vedo alcune persone suggerire di usare for ... in loop per ottenere il primo elemento, ma sconsiglio questo metodo per ... in non dovrebbe essere usato per iterare su una matrice in cui l'ordine dell'indice è importante perché non lo fa ' garantiamo l'ordine anche se puoi sostenere che i browser rispettano principalmente l'ordine. A proposito, ogni soluzione non risolve il problema come molti suggeriscono perché non puoi romperlo e scorrerà tutti gli elementi. Sarebbe meglio usare un semplice per loop e controllando chiave / valore
Find () e filter () garantiscono l'ordine degli elementi, quindi sono sicuri da usare come sopra.