Array.prototype.at()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.
Метод at()
принимает значение в виде целого числа и возвращает элемент массива с данным индексом. В качестве аргумента метод принимает положительные и отрицательные числа. При отрицательном значении отсчёт происходит с конца массива.
Интерактивный пример
const array1 = [5, 12, 8, 130, 44]; let index = 2; console.log(`An index of ${index} returns ${array1.at(index)}`); // Expected output: "An index of 2 returns 8" index = -2; console.log(`An index of ${index} returns ${array1.at(index)}`); // Expected output: "An index of -2 returns 130"
Синтаксис
at(index)
Параметры
index
Индекс (позиция) элемента возвращаемого элемента массива. При передаче отрицательного индекса применяется относительная индексация с конца массива; например, при использовании отрицательного числа, возвращаемый элемент находится путём обратного отсчёта с конца массива.
Возвращаемое значение
Элемент массива, соответствующий переданному индексу. Если переданный индекс не может быть найден, возвращает undefined
.
Описание
Метод at()
является эквивиалентом получения элементов массива с помощью квадратных скобок с использованием неотрицательного индекса. Например, array[0]
и array.at(0)
оба вернут первый элемент. Однако, при вычислении значения с конца массива, нельзя использовать array[-1]
как в Python или R, потому что все значения внутри квадратных скобок трактуются буквально как строковые свойства. Из-за этого попытка обращения к -1 элементу будет прочитана как array["-1"]
, что является нормальным строковым значением, а не индексом массива.
Обычной практикой является получении числа элементов массива length
и последующее вычисление значения индекса — например, array[array.length - 1]
. Метод at()
разрешает относительную индексацию, поэтому может быть сокращено до array.at(-1)
.
Метод at()
— это generic. Он ожидает только, что значение this
будет иметь свойство length
и свойства с числовыми ключом.
Примеры
Возврат последнего элемента массива
В следующем примере представлена функция, которая возвращает последний элемент переданного массива
// Массив со значениями const cart = ["apple", "banana", "pear"]; // Функция, которая возвращает последний элемент переданного массива function returnLast(arr) { return arr.at(-1); } // Получить последний элемент нашего массива 'cart' const item1 = returnLast(cart); console.log(item1); // Выведет: 'pear' // Добавить элемент в наш массив 'cart' cart.push("orange"); const item2 = returnLast(cart); console.log(item2); // Выведет: 'orange'
Сравнение методов
В этом примере сравниваются разные способы выбора предпоследнего элемента массива
. Хотя все приведённые ниже способы являются допустимыми, наиболее кратким и наглядным является использование метода at()
.
// Наш массив с элементами const colors = ["red", "green", "blue"]; // Использование свойства 'length' const lengthWay = colors[colors.length - 2]; console.log(lengthWay); // Выведет: 'green' // Использование метода slice(). Обратите внимание, что возвращается массив const sliceWay = colors.slice(-2, -1); console.log(sliceWay[0]); // Выведет: 'green' // Использование метода at() const atWay = colors.at(-2); console.log(atWay); // Выведет: 'green'
Вызов at() в массивоподобных объектах
Метод at()
считывает свойство length
для значения this
и вычисляет индекс для обращения.
const arrayLike = { length: 2, 0: "a", 1: "b", }; console.log(Array.prototype.at.call(arrayLike, -1)); // "b"
Спецификации
Specification |
---|
ECMAScript® 2026 Language Specification # sec-array.prototype.at |
Совместимость с браузерами
Смотрите также
- Полифил
Array.prototype.at
в библиотекеcore-js
- Полифил для метода at().
Array.prototype.find()
– возвращает значение на основании проверки.Array.prototype.includes()
– проверяет наличие значения в массиве.Array.prototype.indexOf()
– возвращает индекс переданного элемента.