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.
Die at()
-Methode von Array
-Instanzen übernimmt einen ganzzahligen Wert und gibt das Element an diesem Index zurück, wobei sowohl positive als auch negative Ganzzahlen erlaubt sind. Negative Ganzzahlen zählen rückwärts vom letzten Element des Arrays.
Probieren Sie es aus
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"
Syntax
at(index)
Parameter
index
-
Der nullbasierte Index des Array-Elements, das zurückgegeben werden soll, umgewandelt in eine Ganzzahl. Ein negativer Index zählt rückwärts vom Ende des Arrays — wenn
index < 0
, wirdindex + array.length
aufgerufen.
Rückgabewert
Das Element im Array am gegebenen Index. Gibt immer undefined
zurück, wenn index < -array.length
oder index >= array.length
, ohne zu versuchen, auf die entsprechende Eigenschaft zuzugreifen.
Beschreibung
Die at()
-Methode entspricht der Klammernotation, wenn index
eine nicht-negative Ganzzahl ist. Zum Beispiel geben sowohl array[0]
als auch array.at(0)
das erste Element zurück. Wenn Sie jedoch Elemente vom Ende des Arrays aus zählen, können Sie array[-1]
nicht verwenden, wie es in Python oder R möglich wäre, da alle Werte innerhalb der eckigen Klammern wörtlich als Zeichenfolgeneigenschaften behandelt werden, sodass Sie am Ende array["-1"]
lesen würden, was einfach eine normale Zeichenfolgeneigenschaft statt eines Array-Index ist.
Die übliche Praxis ist es, auf length
zuzugreifen und den Index davon zu berechnen — zum Beispiel array[array.length - 1]
. Die at()
-Methode ermöglicht eine relative Indizierung, sodass dies auf array.at(-1)
verkürzt werden kann.
Durch die Kombination von at()
mit with()
, können Sie ein Array sowohl lesen als auch schreiben (jeweils) mit negativen Indizes.
Die at()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft und ganzzahlige, schlüsselbasierte Eigenschaften hat.
Beispiele
Den letzten Wert eines Arrays zurückgeben
Das folgende Beispiel bietet eine Funktion, die das letzte Element in einem angegebenen Array zurückgibt.
// 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'
Vergleich von Methoden
Dieses Beispiel vergleicht verschiedene Methoden zur Auswahl des vorletzten Elements eines Array
. Während alle gezeigten Methoden gültig sind, hebt dieses Beispiel die Prägnanz und Lesbarkeit der at()
-Methode hervor.
// 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'
Aufrufen von at() bei Nicht-Array-Objekten
Die at()
-Methode liest die length
-Eigenschaft von this
und berechnet den zuzugreifenden Index.
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
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-array.prototype.at |