Как получить сразу первый и последний элементы массива не зная его длины?
Массивы и структуры данных
Первый и последний элементы без знания длины получают: первый — `arr[0]` или `arr.at(0)`, последний — `arr.at(-1)` (современно) или `arr[arr.length - 1]`.
Первый элемент
arr[0]; // первый
arr.at(0); // то же (современно)
const [first] = arr; // деструктуризацияПоследний элемент
arr.at(-1) — современный способ
arr.at(-1); // последний (отрицательный индекс)at() поддерживает отрицательные индексы (с конца).
arr[arr.length - 1] — классический
arr[arr.length - 1]; // последнийДеструктуризация
const last = arr[arr.length - 1];
// или через slice
const [last2] = arr.slice(-1);Оба сразу
const first = arr.at(0);
const last = arr.at(-1);
// или деструктуризация
const [first2] = arr;
const last2 = arr.at(-1);Преимущество at()
at() (ES2022) поддерживает отрицательные индексы — чище, чем arr[arr.length - 1]:
arr.at(-1); // последний
arr.at(-2); // предпоследнийРаботает и для строк.
Осторожно
На пустом массиве оба дадут undefined:
[].at(0); // undefined
[].at(-1); // undefinedКоротко для собеседования
Первый элемент — arr[0] или arr.at(0); последний — arr.at(-1) (современно, ES2022, поддерживает отрицательные индексы) или arr[arr.length - 1] (классика). at() чище для доступа с конца (at(-2) — предпоследний), работает и для строк. На пустом массиве — undefined.