Heim > Web-Frontend > js-Tutorial > Verwenden von Array.at() über Array[index]

Verwenden von Array.at() über Array[index]

Mary-Kate Olsen
Freigeben: 2025-01-19 14:30:15
Original
705 Leute haben es durchsucht

Using Array.at() over Array[index]

In diesem Artikel wird untersucht, warum Array.prototype.at() beim Zugriff auf Array-Elemente idealer ist als Array[index].

Motivation

Früher habe ich beim Zugriff auf Array-Elemente Array[index] verwendet, beispielsweise Array[1]. Das ist es, womit ich vertraut bin und wie ich gelernt habe, Array-Elemente zu erhalten.

Ein Kollege fragte jedoch kürzlich in einer Codeüberprüfung: „Warum nicht Array.prototype.at() verwenden, anstatt den Index direkt zu verwenden?“

Mein Code ist:

const element = arr[1];
Nach dem Login kopieren
Nach dem Login kopieren
Er schlug den Wechsel zu:

vor

const element = arr.at(1);
Nach dem Login kopieren
Dieser Ansatz fällt mir auf, weil er sehr einfach und intuitiv aussieht.

So verwenden Sie Array.prototype.at()

akzeptiert eine Ganzzahl als Argument und gibt das entsprechende Element im Array zurück. Array.prototype.at()

Zum Beispiel für ein Array:

const arr = ["One", "Two", "Three"];
Nach dem Login kopieren
Anruf:

arr.at(0); // 返回 "One"
Nach dem Login kopieren
Dies entspricht der Schreibweise in eckigen Klammern

. Sie fragen sich vielleicht: Was ist der Unterschied? Als Nächstes werden wir uns mit den Vorteilen dieses Ansatzes befassen. array[0]

Warum ist Array[index] nicht ideal?

Sehen wir uns einige Szenarien an, in denen

anstelle von Array.prototype.at() verwendet werden sollte. Array[index]

Letztes Element des Arrays abrufen

Angenommen, es gibt ein Array von Zeichenfolgen:

const sports = ["basketball", "baseball", "football"];
Nach dem Login kopieren
Um das letzte Element „Fußball“ des Arrays zu erhalten, können Sie Folgendes schreiben:

const lastElement = sports[sports.length - 1];
Nach dem Login kopieren
Dies ist der richtige Ansatz; er kann jedoch mit der

-Methode prägnanter geschrieben werden: Array.prototype.at()

const lastElement = sports.at(-1);
Nach dem Login kopieren
Ist es einfacher zu lesen?

Typinferenz

In TypeScript schließt die Notation mit eckigen Klammern

nicht in die Typinferenz ein. undefined

Der Typ von
const arr: string[] = [];
const element = arr[0];
console.log(element); // undefined
Nach dem Login kopieren

wird als element und nicht als string abgeleitet. string | undefined

Wir gehen davon aus, dass TypeScript beim Schreiben dieses Codes Kompilierungsfehler verursacht.

Normalerweise möchten wir sicherstellen, dass das Array-Element, auf das zugegriffen wird, existiert.

const arr: string[] = [];
const element = arr[0];
if (typeof element === 'string') console.log(element);
Nach dem Login kopieren
Das Seltsame ist, dass wir den Elementtyp überprüfen, den TypeScript als

ableitet. string

Sie könnten über die Verwendung von Typzusicherungen nachdenken:

const element: string | undefined = arr[0];
Nach dem Login kopieren
Das ist jedoch nicht ideal, da wir es uns nicht zur Aufgabe machen sollten, perfekten Code zu schreiben.

Um dieses Problem zu lösen, können wir zwei Ansätze verfolgen:

    Schreibtypschutzfunktionen
  1. Verwenden Sie die
  2. Compiler-OptionnoUncheckedIndexedAccess
Beide Methoden funktionieren gut, aber wenn Sie

verwenden, müssen Sie nicht beides tun. Array.prototype.at()

const arr: string[] = [];
const element = arr.at(0); // string | undefined
console.log(element);
Nach dem Login kopieren
Wenn Sie versuchen,

in einen anderen Wert vom Typ element einzufügen, erhalten Sie einen Kompilierungsfehler: string

const element = arr[1];
Nach dem Login kopieren
Nach dem Login kopieren

Fazit

Verwenden Sie Array.prototype.at(), um saubereren Code zu schreiben und das Hinzufügen zusätzlicher Funktionen und Konfigurationen zu vermeiden.

Array.prototype.at()Erklärung zum Mozilla Developer Network: Link (bitte durch tatsächlichen Link ersetzen)

Das obige ist der detaillierte Inhalt vonVerwenden von Array.at() über Array[index]. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage