Algunas de las formas a continuación para diferentes circunstancias.
En la mayoría de los casos normales, la forma más sencilla de acceder al primer elemento es mediante
yourArray[0]
pero esto requiere que verifique si [0] realmente existe.
Hay casos del mundo real en los que no le importa la matriz original y no desea verificar si existe un índice, solo desea obtener el primer elemento o una línea no definida.
En este caso, puede usar shift () método para obtener el primer elemento, pero tenga cuidado de que este método modifique la matriz original (elimine el primer elemento y lo devuelva). Por lo tanto, la longitud de una matriz se reduce en uno. Este método se puede usar en casos en línea donde solo necesita obtener el primer elemento, pero no le importa la matriz original.
yourArray.shift()
Lo importante es saber que los dos anteriores son solo una opción si su matriz comienza con un índice [0].
Hay casos en los que se ha eliminado el primer elemento, por ejemplo, eliminar yourArray [0] dejando su matriz con "agujeros". Ahora el elemento en [0] simplemente no está definido, pero desea obtener el primer elemento "existente". He visto muchos casos del mundo real de esto.
Entonces, suponiendo que no tenemos conocimiento de la matriz y la primera clave (o sabemos que hay agujeros), aún podemos obtener el primer elemento.
Puede usar find () para obtener el primer elemento.
La ventaja de find () es su eficiencia, ya que sale del bucle cuando se alcanza el primer valor que satisface la condición (más sobre esto a continuación). (Puede personalizar la condición para excluir valores nulos u otros valores vacíos también)
var firstItem = yourArray.find(x=>x!==undefined);
También me gustaría incluir filter () aquí como una opción para "arreglar" primero la matriz en la copia y luego obtener el primer elemento manteniendo intacta la matriz original (sin modificar).
Otra razón para incluir filter () aquí es que existía antes de find () y muchos programadores ya lo han estado usando (es ES5 contra find () como ES6).
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
Advertencia de que filter () no es realmente una forma eficiente (filter () se ejecuta a través de todos los elementos) y crea otra matriz. Está bien usarlo en matrices pequeñas ya que el impacto en el rendimiento sería marginal, más cercano al uso de forEach, por ejemplo.
(Veo que algunas personas sugieren usar for ... in loop para obtener el primer elemento, pero recomendaría este método para ... in no debería usarse para iterar sobre una matriz donde el orden del índice es importante porque no lo hace ' No garantiza el pedido, aunque puede argumentar que los navegadores respetan el orden en su mayoría. Por cierto, porque cada uno no resuelve el problema como muchos sugieren porque no puede romperlo y se ejecutará a través de todos los elementos. Sería mejor usar un simple para bucle y comprobando clave / valor
Tanto find () como filter () garantizan el orden de los elementos, por lo que son seguros de usar como se indicó anteriormente.