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

js
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 auf index + 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.

js
// 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.

js
// 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.

js
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 GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
at

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch