Wie erstellen Sie ein array in JavaScript, deren Indizierung beginnt bei 1?
Standardmäßig ist die Indizierung jedes JavaScript-array beginnt bei 0. Ich möchte ein array erstellen, dessen Indizierung beginnt ab 1 statt.
Ich weiß, muss sehr trivial... vielen Dank für Ihre Hilfe.
- Warum wollen Sie das tun? Ich Frage, weil, wenn Sie finden, sich selbst versuchen zu umgehen, eine der grundlegendsten Eigenschaften einer Programmiersprache, die Chancen stehen gut, es gibt einen besseren Weg, das zu tun, was Sie zu tun versuchen.
- Und außerdem, beginnend array-Indizes von 0 ist ein feature, kein bug.
- Wenn Sie möchten, zur Anzeige der Indizes zu einem Benutzer können Sie nur anzeigen, i + 1. Sie sollten wirklich nur get verwendet, um null-Indizes, da Sie ausführen möchten, in so viele Zaun-post-Fehler in Ihrem Leben, wenn Sie es umgehen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht trivial. Es ist unmöglich. Das beste, was Sie tun könnten, ist, erstellen Sie ein Objekt mit Hilfe numerischer Eigenschaften, beginnend bei 1, aber das ist nicht das gleiche.
Warum genau wollen Sie es bei 1 beginnen? Entweder:
Bei 0 beginnen, und passen Sie Ihre Indizes wie nötig; oder
Beginnen bei 0 und ignorieren den index 0 (dh verwenden Sie nur die Indizes 1 und oben).
Da diese Frage auch erscheint, für eine Google-Suche wie "javascript start-array bei 1" ich gebe eine andere Antwort:
Arrays können in Scheiben geschnitten werden. So können Sie eine geschnittene version des Array wie dieses:
Quelle: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
Eine einfache Lösung ist, um zu füllen das nullte Element:
Semantisch wäre es besser, ein Objekt zu verwenden:
Hinweis: diese Schlüssel sind nicht ints eigentlich, Objekt-Schlüssel sind immer strings.
Auch wir können nicht, verwenden Sie die Punkt-notation für den Zugriff auf. (MDN - Eigenschaftenaccessoren)
Ich würde wählen, die erste Lösung, die ich denke, ist weniger verwirrend.
Okay, laut @cletus konnte man nicht tun, weil es eine eingebaute javascript-Funktion, aber Sie gehen konnte etwas anderen Weise, wenn Sie immer noch wollen, dass. Sie konnte schreiben Sie Ihre eigenen index-abhängige Funktionen von Arrays (wie
reduce
,map
,forEach
) beginnen mit 1. Es ist nicht eine schwierige Aufgabe sein, aber trotzdem Fragen Sie sich: warum brauche ich das?Codepen: https://codepen.io/anon/pen/rvbNZR?editors=0012
Könnten Sie löschen zu entfernen das erste element etwa so:
JS:
Oder einfach nicht definieren, es an alle:
JS:
Wenn Sie wollen, stellen Sie sicher, dass Sie immer bekommen die ersten truthy-element unabhängig von der index-und haben Zugriff auf ES6, die Sie verwenden können:
Zuerst fügen Sie diese Funktion, um Ihren javascript-codes:
Benutzen es jetzt so:
Sehen live-demo
Array.from(myArray.keys())
zurück[0, 1, 2, 3, 4]
statt[1, 2, 3, 4, 5]
.[0, 1, 2, 3, 4]
hat keine unerwarteten Wert für @detj (Fragesteller). Er brauche nur([0, 1, 2, 3, 4])[n]
wennn>=1
.Also das array hat immer richtige Ergebnis für ihn.Stand ich vor einer situation, wo ich neeeded die Arrays beginnen mit index 1. Hier ist, was ich getan habe:
Einfach, nur zwei änderungen an der klassischen Javascript -
for
Schleife.