Array.prototype.at()
Метод at()
(за індексом) примірників Array
приймає числове значення і повертає елемент за переданим індексом; для використання дозволені додатні та відʼємні числа. Відʼємні числа починають відлік з останнього елемента масиву.
Спробуйте його в дії
Синтаксис
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
, а також властивості з цілочисловими ключами.
Приклади
Повернення останнього значення масиву
У наступному прикладі показана функція, що повертає останній доступний елемент переданого в неї масиву.
// Масив з елементами
const cart = ["яблуко", "банан", "груша"];
// Функція, що повертає останній елемент переданого в неї масиву.
function returnLast(arr) {
return arr.at(-1);
}
// Отримання останнього елемента масиву 'cart'
const item1 = returnLast(cart);
console.log(item1); // 'груша'
// Додавання елемента в масив 'cart'
cart.push("апельсин");
const item2 = returnLast(cart);
console.log(item2); // 'апельсин'
Порівняння методів
Цей приклад порівнює різні шляхи обрати передостанній елемент Array
. Хоча всі наведені нижче методи правильні, цей приклад підкреслює стислість і читабельність методу at()
.
// Масив з елементами
const colors = ["червоний", "зелений", "синій"];
// Використання властивості довжини
const lengthWay = colors[colors.length - 2];
console.log(lengthWay); // 'зелений'
// Використання методу slice(). Візьміть до уваги, що повернуто масив
const sliceWay = colors.slice(-2, -1);
console.log(sliceWay[0]); // 'зелений'
// Використання методу at()
const atWay = colors.at(-2);
console.log(atWay); // 'зелений'
Виклик at() на об'єктах-немасивах
Метод at()
зчитує властивість length
з this
і вираховує індекс, до якого відбувається звертання.
const arrayLike = {
length: 2,
0: "a",
1: "b",
2: "c", // ігнорується at(), оскільки length – 2
};
console.log(Array.prototype.at.call(arrayLike, 0)); // "a"
console.log(Array.prototype.at.call(arrayLike, 2)); // undefined
Специфікації
Сумісність із браузерами
desktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
at
|
Chrome Full support 92 | Edge Full support 92 | Firefox Full support 90 | Internet Explorer No support Ні | Opera Full support 78 | Safari Full support 15.4 | WebView Android Full support 92 | Chrome Android Full support 92 | Firefox for Android Full support 90 | Opera Android No support Ні | Safari on iOS Full support 15.4 | Samsung Internet Full support 16.0 | Deno Full support 1.12 | Node.js Full support 16.6.0 |