Некоторые из способов ниже для разных обстоятельств.
В большинстве обычных случаев самый простой способ получить доступ к первому элементу - это
yourArray[0]
но для этого нужно проверить, существует ли [0] на самом деле.
Есть реальные случаи, когда вас не интересует исходный массив, и вы не хотите проверять, существует ли индекс, вы просто хотите получить первый элемент или неопределенный встроенный.
В этом случае вы можете использовать метод shift (), чтобы получить первый элемент, но будьте осторожны, так как этот метод изменяет исходный массив (удаляет первый элемент и возвращает его). Поэтому длина массива уменьшается на один. Этот метод может использоваться во встроенных случаях, когда вам просто нужно получить первый элемент, но вас не волнует исходный массив.
yourArray.shift()
Важно знать, что два приведенных выше варианта возможны только в том случае, если ваш массив начинается с индекса [0].
Есть случаи, когда первый элемент был удален, например, с помощью delete yourArray [0], оставляя ваш массив с «дырами». Теперь элемент в [0] просто не определен, но вы хотите получить первый «существующий» элемент. Я видел много реальных случаев этого.
Итак, предполагая, что у нас нет знаний о массиве и первом ключе (или мы знаем, что есть дыры), мы все равно можем получить первый элемент.
Вы можете использовать find (), чтобы получить первый элемент.
Преимущество find () заключается в его эффективности, поскольку он выходит из цикла, когда достигается первое значение, удовлетворяющее условию (подробнее об этом ниже). (Вы можете настроить условие так, чтобы исключить пустые или другие пустые значения)
var firstItem = yourArray.find(x=>x!==undefined);
Я также хотел бы включить filter () в качестве опции, чтобы сначала «исправить» массив в копии, а затем получить первый элемент, сохраняя при этом исходный массив без изменений (без изменений).
Другая причина, чтобы включить сюда filter (), заключается в том, что он существовал до find (), и многие программисты уже использовали его (это ES5 против find (), являющегося ES6).
var firstItem = yourArray.filter(x => typeof x!==undefined).shift();
Предупреждение, что filter () не является эффективным способом (filter () проходит через все элементы) и создает другой массив. Это хорошо для небольших массивов, поскольку влияние на производительность будет незначительным, например, ближе к использованию forEach.
(Я вижу, что некоторые люди предлагают использовать цикл for ... in для получения первого элемента, но я бы рекомендовал не использовать этот метод для ... in, чтобы использовать его для перебора массива, для которого важен порядок индекса, потому что он не ' не гарантирует порядок, хотя вы можете утверждать, что браузеры в основном соблюдают порядок. Кстати, forEach не решает проблему, как многие предлагают, потому что вы не можете ее сломать, и она будет проходить через все элементы. Было бы лучше использовать простое для цикл и проверяя ключ / значение
Обе функции find () и filter () гарантируют порядок элементов, поэтому их можно безопасно использовать, как указано выше.