Array.prototype.at()
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2022 года.
Метод at() экземпляров Array принимает целочисленное значение и возвращает элемент по этому индексу, позволяя использовать как положительные, так и отрицательные целые числа. Отрицательные целые числа отсчитываются с конца массива.
Попробуйте
const array = [5, 12, 8, 130, 44];
let index = 2;
console.log(`An index of ${index} returns ${array.at(index)}`);
// Expected output: "An index of 2 returns 8"
index = -2;
console.log(`An index of ${index} returns ${array.at(index)}`);
// Expected output: "An index of -2 returns 130"
Синтаксис
at(index)
Параметры
-
index - Индекс элемента массива, возвращаемого методом, начиная с нуля, преобразованный в целое число. Отрицательный индекс отсчитывается с конца массива — если
index < 0, будет получен доступ кindex + array.length.
Возвращаемое значение
Элемент массива, соответствующий заданному индексу. Всегда возвращает undefined, если index < -array.length или index >= array.length, не пытаясь получить доступ к соответствующему свойству.
Описание
Метод at() эквивалентен записи в квадратных скобках, когда index является неотрицательным целым числом. Например, array[0] и array.at(0) возвращают первый элемент. Однако при подсчете элементов с конца массива вы не можете использовать array[-1], как в Python или R, поскольку все значения внутри квадратных скобок рассматриваются как строковые свойства, поэтому вы получите array["-1"], которое является обычным строковым свойством, а не индексом массива.
Обычная практика — получить доступ к length и вычислить индекс на его основе — например, array[array.length - 1]. Метод at() позволяет использовать относительную индексацию, поэтому это можно сократить до array.at(-1).
Объединяя at() с with(), вы можете как читать, так и записывать (соответственно) элементы массива, используя отрицательные индексы.
Метод at() является универсальным. Он ожидает, что значение this будет иметь свойство length и целочисленные свойства.
Примеры
Возврат последнего значения массива
Следующий пример демонстрирует функцию, которая возвращает последний найденный элемент в указанном массиве.
// Our array with items
const cart = ["apple", "banana", "pear"];
// A function which returns the last item of a given array
function returnLast(arr) {
return arr.at(-1);
}
// Get the last item of our array 'cart'
const item1 = returnLast(cart);
console.log(item1); // 'pear'
// Add an item to our 'cart' array
cart.push("orange");
const item2 = returnLast(cart);
console.log(item2); // 'orange'
Сравнение методов
Этот пример сравнивает различные способы выбора предпоследнего (предпоследнего) элемента Array. Хотя все показанные ниже методы действительны, этот пример подчеркивает краткость и читаемость метода at().
// Our array with items const colors = ["red", "green", "blue"]; // Using length property const lengthWay = colors[colors.length - 2]; console.log(lengthWay); // 'green' // Using slice() method. Note an array is returned const sliceWay = colors.slice(-2, -1); console.log(sliceWay[0]); // 'green' // Using at() method const atWay = colors.at(-2); console.log(atWay); // 'green'
Вызов at() на объектах, не являющихся массивами
Метод at() считывает свойство length объекта this и вычисляет индекс для доступа.
const arrayLike = {
length: 2,
0: "a",
1: "b",
2: "c", // ignored by at() since length is 2
};
console.log(Array.prototype.at.call(arrayLike, 0)); // "a"
console.log(Array.prototype.at.call(arrayLike, 2)); // undefined
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
at |
92 |
92 |
90 |
78 |
15.4 |
92 |
90 |
65 |
15.4 |
16.0 |
92 |
15.4 |
1.0.0 |
1.12 |
16.6.0 |
См. также
- Заполнитель
Array.prototype.atвcore-js - Заполнитель
Array.prototype.ates-shims - Руководство по коллекциям с индексами
ArrayArray.prototype.findIndex()Array.prototype.indexOf()Array.prototype.with()TypedArray.prototype.at()String.prototype.at()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at