Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-array.prototype.at

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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.at es-shims
  • Руководство по коллекциям с индексами
  • Array
  • Array.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API