Методы получения информации о массиве

Методы получения информации о массиве

Технический фундамент методов чтения массива

Методы этого урока предназначены для чтения информации о массиве: длины, позиции, наличия элемента.
Они не меняют содержимое массива и подходят для безопасных проверок перед обработкой.

const data = [10, 20, 30];
const size = data.length;
const has20 = data.includes(20);

console.log(data); // [10, 20, 30]
console.log(size, has20); // 3 true

Ключевой момент: сначала читаем состояние массива, потом принимаем решение о дальнейших действиях.

length — базовая информация

length возвращает количество элементов.

const users = ['Ann', 'Max', 'Leo'];

console.log(users.length); // 3
console.log(users[users.length - 1]); // Leo

Проверь себя: что вернет length у пустого массива []?

at() и доступ к элементам

Метод at(index) возвращает элемент по индексу. Важный плюс: поддерживает отрицательные индексы.

const prices = [100, 250, 420];

console.log(prices.at(0)); // 100
console.log(prices.at(-1)); // 420

Для «последнего элемента» at(-1) читается проще, чем arr[arr.length - 1].

indexOf и lastIndexOf

indexOf(value) ищет первое вхождение и возвращает индекс или -1, если не найдено.

const tags = ['js', 'react', 'js'];

console.log(tags.indexOf('js')); // 0
console.log(tags.lastIndexOf('js')); // 2
console.log(tags.indexOf('vue')); // -1

Здесь часто ошибаются: проверяют if (arr.indexOf('js')), а индекс 0 воспринимается как false. Безопасно проверять !== -1.

includes — булева проверка наличия

includes(value) сразу возвращает true или false.

const roles = ['admin', 'editor', 'viewer'];

console.log(roles.includes('admin')); // true
console.log(roles.includes('owner')); // false

Если тебе нужна только проверка «есть/нет», includes обычно лучше, чем indexOf.

Смотри, что важно: includes умеет находить NaN, а indexOf — нет (потому что NaN !== NaN).

const values = [1, NaN, 3];

console.log(values.includes(NaN)); // true
console.log(values.indexOf(NaN)); // -1

Что будет, если изменить входные данные

const ids = [1, 2, 3];

console.log(ids.includes('2')); // false
console.log(ids.includes(2)); // true

Сравнение в includes строгое по типу. Строка '2' и число 2 — разные значения.

Микро-сценарии

  1. Проверка «пустого состояния» списка заказов.
function hasOrders(orders) {
  return orders.length > 0;
}
  1. Валидация роли пользователя перед доступом к странице.
function canAccessAdmin(roles) {
  return roles.includes('admin');
}

Типичные ошибки

  • Путать indexOf и includes.
  • Не обрабатывать результат -1.
  • Забывать про строгую проверку типа.
  • Доставать последний элемент через arr[arr.length].

Краткий итог

  • length показывает размер массива.
  • at() удобен для доступа, особенно at(-1).
  • indexOf/lastIndexOf дают позицию элемента.
  • includes дает быстрый ответ true/false о наличии.
  • Корректные проверки массива — основа устойчивой логики.