Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Array.prototype.at()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2022 browserübergreifend verfügbar.

Die Methode at() von Array-Instanzen nimmt einen ganzzahligen Wert entgegen und gibt das Element an diesem Index zurück. Dabei sind positive und negative Ganzzahlen zulässig. Negative Ganzzahlen zählen vom letzten Element des Arrays aus rückwärts.

Probieren Sie es aus

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"

Syntax

js
at(index)

Parameter

index

Nullbasierter Index des zurückzugebenden Array-Elements, der in eine Ganzzahl umgewandelt wird. Ein negativer Index zählt vom Ende des Arrays aus rückwärts – wenn index < 0, wird auf index + array.length zugegriffen.

Rückgabewert

Das Element im Array am angegebenen Index. Wenn index < -array.length oder index >= array.length, wird immer undefined zurückgegeben, ohne zu versuchen, auf die entsprechende Eigenschaft zuzugreifen.

Beschreibung

Die Methode at() entspricht der Schreibweise mit eckigen Klammern, wenn index eine nicht negative Ganzzahl ist. Beispielsweise geben array[0] und array.at(0) beide das erste Element zurück. Wenn Sie jedoch Elemente vom Ende des Arrays aus zählen, können Sie nicht wie in Python oder R array[-1] verwenden: Werte innerhalb der eckigen Klammern werden als Namen von String-Eigenschaften interpretiert. Sie würden damit array["-1"] lesen – eine gewöhnliche String-Eigenschaft statt eines Array-Index.

Üblicherweise greift man auf length zu und berechnet daraus den Index, beispielsweise mit array[array.length - 1]. Die Methode at() ermöglicht eine relative Indizierung, sodass sich dies zu array.at(-1) verkürzen lässt.

Durch die Kombination von at() mit with() können Sie mit negativen Indizes Elemente eines Arrays lesen beziehungsweise schreiben.

Die Methode at() ist generisch. Sie setzt lediglich voraus, dass der Wert von this eine length-Eigenschaft und Eigenschaften mit ganzzahligen Schlüsseln besitzt.

Beispiele

Den letzten Wert eines Arrays zurückgeben

Das folgende Beispiel zeigt eine Funktion, 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'

Methoden vergleichen

Dieses Beispiel vergleicht verschiedene Möglichkeiten, das vorletzte Element eines Array auszuwählen. Alle unten gezeigten Methoden sind gültig; das Beispiel verdeutlicht jedoch, wie knapp und gut lesbar die Methode at() ist.

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'

at() für Objekte aufrufen, die keine Arrays sind

Die Methode at() liest die length-Eigenschaft von this und berechnet den Index, auf den zugegriffen werden soll.

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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-array.prototype.at

Browser-Kompatibilität

Siehe auch