Проверка наличия значения по индексу в массиве JavaScript

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам нужно установить наличие значения в массиве при заданном индексе, вы можете воспользоваться оператором in или сравнить индекс с длиной массива:

Использование оператора in:

JS
Скопировать код
let exists = 1 in [1, 2, 3]; // true

Сравнение с length:

JS
Скопировать код
let exists = 1 < [1, 2, 3].length; // true

Для большей ясности кода рекомендуется применять проверку на правдивость или метод hasOwnProperty:

Проверка на правдивость:

JS
Скопировать код
let heroic = !![0, 1, 2][1]; // true

Воспользовавшись hasOwnProperty:

JS
Скопировать код
let heroic = [0, 1, 2].hasOwnProperty(1); // true
Кинга Идем в IT: пошаговый план для смены профессии

Индексы массива начинаются с нуля

В JavaScript индексация массивов начинается с нуля: первый элемент имеет индекс 0, последний — индекс, меньше на единицу от длины массива.

Предотвратим ошибку переполнения индекса

Перед обращением к элементам массива, убедитесь, что индекс находится в заданных пределах. Это подразумевает проверку: 0 <= i < array.length.

Функция для проверки допустимости индекса:

JS
Скопировать код
let isSafeIndex = (i, array) => i >= 0 && i < array.length;

Как избегать проблемы неопределённых значений

Даже внутри корректных индексов может отсутствовать значение, отличное от undefined. Чтобы избежать подобной ситуации, используйте typeof.

Уклонение от проблемы:

JS
Скопировать код
let crisisAverted = typeof array[index] !== 'undefined'; // Спокойствие и уверенность

В чём разница между null и undefined

Важно точно понимать разницу между отсутствием значения и его наличием, даже если значение является null или undefined. От этого зависит ваш выбор между строгим и нестрогим сравнением:

Проверка на неприсутствие null и undefined:

JS
Скопировать код
let isValue = array[index] != null; // Всё под контролем

Проверка заполненности массива

Прежде чем проверять наличие элементов, убедитесь, что массив действительно содержит элементы:

Проверка на наличие элементов в массиве:

JS
Скопировать код
if (array && array.length) {
    // Можно уверенно продолжать
}

Лаконичность и понимание

Сокращённая версия может улучшить читаемость вашего кода и сделать его конкретнее:

Компактный вариант:

JS
Скопировать код
if (array[index]) {
    // Здесь произошло что-то полезное!
}

Помните, что ложные значения, такие как 0, "", false, null, undefined, NaN, будут определены как отсутствующие.

Взглянем на массив

Рассмотрим массив ['🔑', '🔒', '💻', '📚', '📝'].

Markdown
Скопировать код
| Индекс | Значение |
| ------ | -------- |
| 0      | 🔑       |
| 1      | 🔒       |
| 2      | 💻       |
| 3      | 📚       |
| 4      | 📝       |
| 5      | ❌       |

Воспользуемся проверкой наличия элементов по индексам 3 и 5:

JS
Скопировать код
let valueAtIndex3 = !!array[3]; // Обнаруживаем 📚
let valueAtIndex5 = !!array[5]; // Нет ничего ❌

Навигация по лабиринту определённых случаев

Разреженные массивы, у которых есть пропуски между индексами, могут сбивать вас с толку:

Пример разреженного массива:

JS
Скопировать код
let trickyArray = [];
trickyArray[10] = 'золото'; // Тут сокровище!

console.log(0 in trickyArray); // false, пропуск
console.log(10 in trickyArray); // true, золото найдено!

В таких случаях поможет использование альтернативных методов, например Object.keys():

Альтернативный способ подсчёта элементов:

JS
Скопировать код
let trueLength = Object.keys(sparseArray).length; // Реальное количество элементов

Полезные материалы

  1. Массивы – JavaScript | MDN
  2. Массивы JavaScript – W3Schools
  3. Проверка наличия ключа в JavaScript-объекте – Stack Overflow
  4. Массивы – JavaScript Info
  5. Спецификация ECMAScript® 2020
  6. 8 методов массивов в JavaScript, которые должен знать каждый разработчик – YouTube
  7. Понимание массивов в JavaScript | DigitalOcean

Завершение

Скажем так, практика ведет к мастерству. Если вы нашли эту статью полезной, не забудьте поставить лайк. И пусть вам сопутствует удачный код на JavaScript! 🚀