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 nimmt einen ganzzahligen Wert und gibt das Element an diesem Index zurück. Dabei ermöglicht sie sowohl positive als auch negative Ganzzahlen. Negative Ganzzahlen zählen vom letzten Element des Arrays rückwärts.
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, konvertiert zu einer Ganzzahl. Ein negativer Index zählt vom Ende des Arrays rückwärts — wenn
index < 0
gilt, wird aufindex + array.length
zugegriffen.
Rückgabewert
Das Element im Array, das dem angegebenen Index entspricht. Gibt immer undefined
zurück, wenn index < -array.length
oder index >= array.length
gilt, ohne dabei 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 jedoch Elemente vom Ende des Arrays gezählt werden, können Sie nicht wie in Python oder R array[-1]
verwenden, da alle Werte innerhalb der eckigen Klammern buchstäblich als Zeichenketten-Eigenschaften behandelt werden. Dadurch würde array["-1"]
ausgelesen werden, was lediglich eine normale Zeichenketten-Eigenschaft und kein Array-Index ist.
Die übliche Praxis besteht darin, auf die length
-Eigenschaft zuzugreifen und den Index daraus zu berechnen — zum Beispiel array[array.length - 1]
. Mit der at()
-Methode kann die relative Indizierung verwendet werden, sodass dies verkürzt zu array.at(-1)
werden kann.
Durch die Kombination von at()
mit with()
können Sie sowohl lesen als auch schreiben (bzw. aktualisieren) und dabei negative Indizes verwenden.
Die at()
-Methode ist generisch. Sie erwartet lediglich, dass der Wert von this
eine length
-Eigenschaft und Integer-Indexeigenschaften hat.
Beispiele
Den letzten Wert eines Arrays zurückgeben
Das folgende Beispiel stellt eine Funktion bereit, die das letzte Element eines angegebenen Arrays 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 verschiedener Methoden
In diesem Beispiel werden verschiedene Methoden verglichen, um das vorletzte (letzte, aber ein Element davor) Element eines Array
auszuwählen. Während alle unten 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'
Aufruf 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® 2025 Language Specification # sec-array.prototype.at |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
at |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support