This page was translated from English by the community.Learn more and join the MDN Web Docs community.
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 март 2022 г..
Методat() принимает значение в виде целого числа и возвращает элемент массива с данным индексом. В качестве аргумента метод принимает положительные и отрицательные числа. При отрицательном значении отсчёт происходит с конца массива.
In this article
Интерактивный пример
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()– возвращает индекс переданного элемента.