Ich hoffe, ich kann mich auf Englisch und in dem, was ich schaffen möchte, klar machen. Ich beginne mit dem, was ich will.
Ich möchte einen IBAN-Calculator erstellen, der 1-n IBAN-Nummern generieren und auch eine gegebene IBAN-Nummer validieren kann. IBANnumbers werden in vielen Ländern für die Zahlung verwendet und das Tool, das ich machen möchte, kann verwendet werden, um die Zahlen für Testzwecke zu generieren.
Auf wikipedia (niederländische Seite) habe ich eine Liste mit Ländern und deren Definition der IBAN-Nummer gefunden. Was ich damit machen möchte, ist eine Art Array, das alle Länder mit ihrem Namen, dem Code, dort IBANlength, dem Bankformat und dem Kontoformat enthält.
Das Array muss verwendet werden, um:
Ich weiß nicht, ob ein Array der beste Weg ist, aber das ist bisher das meiste Wissen, das ich habe.
Ich habe bereits eine Tabelle wie diese erstellt, die die Info enthält (diese Tabelle wird nicht verwendet, aber es war eine gute Möglichkeit, um Ihnen zu zeigen, was ich über die Struktur denke):
%Vor%und viele mehr.
Ich würde dafür gar kein "Array" verwenden. JavaScript-Objekte sind Maps (manchmal auch "assoziative Arrays" genannt, aber wir verwenden "map", um Verwechslungen mit numerisch indizierten Arrays zu vermeiden), sodass Sie dies ganz einfach mit einfachen Objekten tun können:
%Vor%(Beachten Sie, dass ich das Unicode-Escape für das 'e' mit dem Umlaut darüber verwendet habe; wahrscheinlich für das Beste, obwohl wenn Sie vorsichtig mit Ihren Codierungen sind, sollten Sie in Ordnung sein.)
Dies verwendet die Objektliteralnotation, um die einzelnen Objekte und die gesamte Karte zu erstellen. In der Gesamtkarte gibt es eine Eigenschaft für jedes Land, wobei der Eigentumsschlüssel der Ländercode und der Eigenschaftswert ein Objekt ist, das die Informationen aus Ihrer Tabelle bereitstellt.
Sie können dann die Informationen eines Landes in der Karte nachsehen, indem Sie seinen Ländercode wie folgt verwenden:
%Vor%Oder wenn Sie den Ländercode in einer anderen Variablen haben:
%Vor%Wenn Sie es vorziehen, nach etwas anderem als dem Ländercode zu suchen, passen Sie die Dinge einfach entsprechend an.
Wenn ich dies mit Informationen zu tun habe, die ich kaum kontrollieren kann, gebe ich normalerweise einen Präfix an den Schlüssel, um Probleme mit Konflikten mit den eingebauten Eigenschaften eines Objekts zu vermeiden (obwohl ich nicht der Meinung bin, dass ein Konflikt sehr wahrscheinlich ist) Hier). Wenn Sie beispielsweise ein Präfix "cc" verwenden würden, würden die Dinge so aussehen:
Die Karte:
%Vor%Die Suche:
%Vor% Wenn Sie (aus irgendeinem Grund) alle diese Punkte durchlaufen müssen, können Sie keinen numerischen Index verwenden, da es sich nicht um ein Array handelt. Zum Glück ist dies genau das, wofür die JavaScript for..in
-Schleife gedacht ist: Sie durchsucht die Namen (Schlüssel) der Objekteigenschaften:
(Sie verwenden hasOwnProperty
, um zwischen Eigenschaften zu unterscheiden, die das Objekt auf direkt gesetzt hat, gegenüber denen, die es von seinem Prototyp erhält. Wenn Sie mit der prototypischen Vererbung von JavaScript nicht vertraut sind, tun Sie das nicht Sorgen Sie sich zu sehr, verwenden Sie nur eine Schleife wie oben.)
Da JavaScript-Arrays Objekte sind und alle JavaScript-Objekte Maps sind, können Sie numerische Indexierung und Indexierung sogar nach Ländercode kombinieren. Hier ist ein Beispiel dafür:
Die Karte:
%Vor%Hier werden diese Präfixe sehr wichtig, weil Arrays mehr Eigenschaften haben als einfache Objekte.
Die Suche nach Ländercode ist unverändert:
%Vor%Aber wenn Sie (aus irgendeinem Grund) einen numerischen Index verwenden müssen, können Sie das auch tun:
%Vor%Cross-Indizierung nach der Tatsache als Aboev ist am besten nur für statische Dinge wie Ihre IBAN-Karte. Wenn Sie Einträge als Teil Ihres Programms hinzufügen oder entfernen würden, würde ich wahrscheinlich stattdessen ein wiederverwendbares Objekt daraus machen.
Wenn ich Dinge sowohl numerisch als auch mit einem Schlüssel benötige, separiere ich die Dinge normalerweise etwas, indem ich die Mapaspekte zu einer Eigenschaft des Arrays mache, anstatt das Array direkt zu verwenden. Das erfordert nur eine kleine Änderung in unserer Schleife, die die Karte erstellt, nachdem wir das Array initialisiert haben:
Die Karte:
%Vor% Ländercode-Suchvorgänge verwenden dann die Eigenschaft byCC
:
Also, da sind Sie, eine Reihe von Optionen:
byCC
-Eigenschaft, nur um uns alle gesund zu halten Glückliche Kodierung.
Sie können javascriptähnliche Objekte verwenden ...
Zur Vereinfachung können Sie JSON (plain javascript)
verwenden %Vor%dann ist ibans.countries ein Array mit allen Ländern ... ibans.countries [1] .name wird Belgie sein usw. ...
Tags und Links javascript arrays