1. Verstehen Sie Arrays
Ein Array ist eine Sammlung bestimmter Datenarten, und die Datentypen können Ganzzahlen, Zeichenfolgen oder sogar Objekte sein.
JavaScript unterstützt keine mehrdimensionalen Arrays, aber da Arrays Objekte enthalten können (Arrays sind auch Objekte), können Arrays Funktionen erzielen, die mehrdimensionalen Arrays ähneln, indem sie sich gegenseitig nisten.
1.1 ein Array definieren
Deklarieren Sie ein Array mit 10 Elementen:
Die Codekopie lautet wie folgt: var a = neuarray (10);
Zu diesem Zeitpunkt wurde der Speicherplatz für A geöffnet, das 10 Elemente enthält und mit dem Array -Namen Plus [Index] aufgerufen wurde, z.
Der folgende Code definiert ein variables Array und weist Werte zu.
Die Codekopie lautet wie folgt:
var a = new Array ();
a [0] = 10;
a [1] = "aaa";
a [2] = 12,6;
Wie oben erwähnt, können Objekte im Array platziert werden, wie z. B. der folgende Code:
Die Codekopie lautet wie folgt:
var a = new Array ();
a [0] = wahr;
a [1] = document.getElementById ("text");
a [2] = {x: 11, y: 22};
a [3] = new Array ();
Arrays können beispielsweise beispielsweise direkt zugewiesen werden:
Die Codekopie lautet wie folgt:
var a = Neuarray (1, 2, 3, 4, 5);
var b = [1, 2, 3, 4, 5];
A und B sind beide Arrays, aber B verwendet eine implizite Erklärung und erstellt eine andere Instanz. Zu diesem Zeitpunkt wird falsch aufgetaucht
1,2 Mehrdimensionales Array
Tatsächlich unterstützt JavaScript keine mehrdimensionalen Arrays. In ASP können Sie DIM A (10,3) verwenden, um mehrdimensionale Arrays zu definieren. Wenn Sie in JavaScript var A = Neuarray (10,3) verwenden, melden Sie einen Fehler.
Wie bereits erwähnt, kann ein Array jedoch Objekte enthalten, sodass ein Element im Array beispielsweise als Array deklariert werden kann:
Die Codekopie lautet wie folgt:
var a = new Array ();
a [0] = new Array ();
a [0] [0] = 1;
Alarm (a [0] [0]); // Pop 1
Wert zuweisen, wenn Sie deklariert werden
Die Codekopie lautet wie folgt:
var a = neuarray ([1,2,3] [4,5,6] [7,8,9]);
var b = [[1,2,3], [4,5,6] [7,8,9]];
Der gleiche Effekt ist, ein konventioneller Instanziation, B ist eine implizite Erklärung, und das Ergebnis ist ein mehrdimensionales Array.
1.3 Array -Literale
Ich weiß wirklich nicht, wie es in Chinesisch -Textarrays genannt wird?
Apropos Arrays, wir müssen über Array -Literale sprechen. Arrays sind tatsächlich spezielle Objekte. Objekte haben einzigartige Eigenschaften und Methoden. Werte und Aufrufe werden durch Objektnamen, Attribute, Objekte und Methoden () erhalten, während Arrays Einweise verwenden, um Werte zu erhalten. Array -Literale sind Arrays sehr ähnlich und sind Sammlungen bestimmter Datentypen. Array -Literale sind jedoch im Grunde ein Objekt, Deklarationen und Anrufe unterscheiden sich von Arrays:
Die Codekopie lautet wie folgt:
var aa = new Object ();
aa.x = "cat";
aa.y = "sunny";
Alarm (aa.x); // Katze pop -up
Erstellen Sie ein einfaches Objekt. Der allgemeine Anruf erfolgt über AA.X. Wenn es als Array -Literale behandelt wird, wird Cat mit Alarm auftauchen (aa ["x"])
Die Codekopie lautet wie folgt:
var a = {x: "kat", y: "sonnig"};
alarm (a ["y"]); // Popt up Sunny
Dies ist eine weitere Möglichkeit, Objekte zu erstellen, und das Ergebnis ist das gleiche
2. Betrieb von Array -Elementen
Wie oben erwähnt, können Elemente über Array [Index] gelesen und geschrieben werden.
Der Bereich der Indexs beträgt 0 (23 (Superscript 2) -1). Wenn die Einschüsse negativ, schwimmende Punkte oder sogar boolesche Werte sind, wird das Array automatisch in den Objekttyp konvertiert, z. B.:
Die Codekopie lautet wie folgt:
var b = new Array ();
B [2.2] = "xxxxx";
Alarm (B [2.2]); //-> xxxxx
Zu diesem Zeitpunkt entspricht es B ["2.2"] = "xxxxx".
2.1 Schleife von Arrays
Die Codekopie lautet wie folgt:
var a = [1,2,3,4,5,6];
für (var i = 0; i <A.Length; i ++) {
alarm (a [i]);
}
Dies ist das am häufigsten verwendete. Nach dem Durchgang des Arrays wird der Code wiederum 1 bis 6 auftreten.
Es gibt eine andere häufig verwendete:
Die Codekopie lautet wie folgt:
var a = [1,2,3,4,5,6];
für (var e in a) {
Alarm (e);
}
Oder tauchen Sie 1 bis 6 nacheinander an. Denn ... in ist ein Objekt, das das Objekt durchläuft (Array ist ein spezielles Objekt) und im Array verwendet. Da das Array keinen Attributnamen hat, wird der Wert direkt ausgegeben. Diese Strukturanweisung wird zum Beispiel für das Objekt verwendet:
Die Codekopie lautet wie folgt:
var a = {x: 1, y: 2, z: 3};
für (var e in a) {
alarm (e + ":" + a [e]);
}
Zu diesem Zeitpunkt nimmt E den Attributnamen, d. H. x, y, x. Um den Wert zu erhalten, wird der Array -Name [Attribut] verwendet, so dass A [e] A ["x"], a [y "], a [z"], a ["z"] entspricht.
2.2 häufig verwendete Funktionen in Arrays
concat
Gehen Sie das Array nach dem vorhandenen Array an und geben Sie das Neue Array zurück, ohne das vorhandene Array zu beeinflussen:
Die Codekopie lautet wie folgt:
var a = [123];
var b = "sunnycat";
var c = ["www", 21, "ido"];
var d = {x: 3.14, y: "sk"};
var e = [1,2,3,4, [5,6, [7,8]];
Alarm (A.Concat (b)); // -> 123, sunnycat
Alarm (a); // -> 123
Alarm (b.concat (c, d)); // -> sunnycatwww, 21, IDO [Objektobjekt]
Alarm (C.Concat (b)); // -> www, 21, Ido, Sunnycat
Alert (E.Concat (11,22,33) .Join (" #")); // -> 1 # 2 # 3 # 4 # 5,6,7,8 # 11 # 22 # 33
Es ist zu beachten, dass es nur für Arrays oder Zeichenfolgen verwendet werden kann. Wenn das verbundene (a) ein numerisches, boolescher oder ein Objekt ist, wird ein Fehler gemeldet. Wenn die Zeichenfolge mit dem Array verbunden ist, wird die Zeichenfolge mit dem ersten Element des Arrays in ein neues Element gespleißt, und die angeschlossene Zeichenfolge wird mit der Zeichenfolge hinzugefügt (ich kenne den Grund dafür nicht, geben Sie sie bitte weiter, wenn Sie mit den Informationen vertraut sind). Halten Sie es für diejenigen, die Arrays und Objekte enthalten, nach der Verbindung gleich.
Verbinden
Schließen Sie das Array mit dem angegebenen Abstandhalter an eine Zeichenfolge an:
Die Codekopie lautet wie folgt:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
lert (A. join (",")); // -> A, B, C, D, E, F, G entspricht A.ToString ()
Alert (A. join ("x")); // -> axbxcxdxExfxg
Dies ist leicht zu verstehen, aber es sollte beachtet werden, dass es nur in ein eindimensionales Array umgewandelt wird. Wenn im Array ein Array vorhanden ist, verwendet es die durch Join angegebene Zeichenfolge nicht, sondern den Standard -ToString (), beispielsweise.
Die Codekopie lautet wie folgt:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', [11,22,33]];
Alert (A.Join (" *")); // -> a * b * c * d * e * f * g * 11,22,33
Hinweis: Das Array im Array wird nicht für * Verbindung verwendet
Pop
Löschen Sie das letzte Element des Arrays und geben Sie das Element zurück
Die Codekopie lautet wie folgt:
var a = ["aa", "bb", "cc"];
document.write (a.pop ()); // -> cc
document.write (a); // -> aa, bb
Hinweis: Wenn das Array leer ist, wird undefiniert zurückgegeben.
drücken
Fügen Sie ein Array hinter dem Array hinzu und geben Sie die neue Länge des Arrays zurück
Die Codekopie lautet wie folgt:
var a = ["aa", "bb", "cc"];
document.write (a.push ("dd")); // -> 4
document.write (a); // -> AA, BB, CC, DD
document.write (a.push ([1,2,3]); // -> 5
document.write (a); // -> AA, BB, CC, DD, 1,2,3
Der Unterschied zu concat besteht darin, dass Concat das ursprüngliche Array nicht beeinflusst, sondern das neue Array direkt zurückgibt, während Push das ursprüngliche Array, das die neue Länge des Arrays zurückgibt, direkt ändert.
Sortieren
Array -Sortierung, schauen wir uns zuerst ein Beispiel an
Die Codekopie lautet wie folgt:
var a = [11,2,33445,5654,654, "Asd", "B"];
alarm (a.sort ()); // -> 11,2,3,33445,5654,654, ASD, geb.
Ist das Ergebnis sehr überraschend? Ja, die Sortierung basiert nicht auf der Ganzzahlgröße, sondern auf String -Vergleich, das darin besteht, den ANSI -Code des ersten Zeichens zu vergleichen, und die kleinen sind vorne. Wenn das Gleiche wahr ist, wird der zweite Charakter verglichen. Wenn Sie nach ganzzahligen Werten vergleichen möchten, können Sie dies tun.
Die Codekopie lautet wie folgt:
var a = [11,2,33445,5654,654];
A.Sort (Funktion (a, b) {
Rückkehr a - b;
});
Alarm (a); // -> 2,3,11,654,5654,33445
Die Sort () -Methode hat einen optionalen Parameter, der die Funktion im Code ist. Dies ist ein einfaches Beispiel. Nichtzahlen können nicht sortiert werden. Nichtzahlen müssen mehr beurteilt werden, also werde ich hier nicht darüber sprechen.
umkehren
Umgekehrt das Array sortieren und sort (), nehmen Sie den ersten Charakter -ASCII -Wert und vergleichen Sie es
Die Codekopie lautet wie folgt:
var a = [11,3,5,66,4];
Alarm (A.Reverse ()); // -> 4,66,5,3,11
Wenn das Array auch ein Array enthält, löst es die Elemente nicht, wenn es als Objekt verarbeitet wird.
Die Codekopie lautet wie folgt:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', [4,11,33]];
Alarm (A.Reverse ()); // -> 4,11,33, g, f, e, d, c, b, a
Alert (A.Join (" *")); // -> 4,11,33 * g * f * e * d * c * b * a
Es sollte die letzten 11 sein, da 4, 11, 33 als vollständiger Objektvergleich angesehen werden, sodass sie zuerst eingestuft werden.
Wenn Sie es nicht verstehen können, verwenden Sie join (), um es zusammenzuschließen, und es wird viel offensichtlicher sein
Schicht
Löschen Sie das erste Element des Arrays und geben Sie das Element zurück, das dem Pop ähnelt
Die Codekopie lautet wie folgt:
var a = ["aa", "bb", "cc"];
document.write (a.shift ()); // -> aa
document.write (a); // -> BB, CC
Hinweis: Wenn das Array leer ist, wird undefiniert zurückgegeben.
unerschütterlich
Fügen Sie im Gegensatz zur Verschiebung Elemente zur Vorderseite des Arrays hinzu und geben Sie die neue Länge des Arrays zurück.
Die Codekopie lautet wie folgt:
var a = ["aa", "bb", "cc"];
Dokument.Write (A.unshift (11)); // -> 4 Hinweis: undefined wird in IE zurückgegeben
document.write (a); // -> 11, AA, BB, CC
document.write (A.unshift ([11,22]); // -> 5
document.write (a); // -> 11,22,11, AA, BB, CC
document.write (a.unshift ("kat")); // -> 6
document.write (a); // -> cat, 11,22,11, AA, BB, CC
Achten Sie auf diese Methode, die undefined in IE zurückgegeben wird, was ein Fehler bei Microsoft zu sein scheint. Ich kann die neue Länge des Arrays unter Firefox richtig spielen.
Scheibe
Array -Fragment zurückgeben
Die Codekopie lautet wie folgt:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
Alarm (A.Slice (1,2)); // -> b
Alarm (A.Slice (2)); // -> c, d, e, f, g
Alarm (A.Slice (-4)); // -> d, e, f, g
Alarm (A.Slice (-2, -6)); // -> leer
A.Slice (1,2), beginnend vom Index von 1 bis zum Index ist 2, beachten Sie, dass die Elemente mit dem Index nicht enthalten sind.
Wenn es nur einen Parameter gibt, liegt der Standard am Ende des Arrays
-4 repräsentiert das viertletzte Element, sodass die vier Elemente im Countdown zurückgegeben werden
Die letzte Zeile beginnt vom zweiten bis zuletzt. Da es später abgefangen wird, ist es offensichtlich unmöglich, das vorherige Element abzurufen, so dass es ein leeres Array zurückgibt. Wenn es in A.Slice (-6, -2) geändert wird, gibt es B, C, D, E zurück
spleißen
Löschen Sie ein Element eines Fragments aus dem Array und geben Sie das gelöschte Element zurück
Die Codekopie lautet wie folgt:
var a = [1,2,3,4,5,6,7,8,9];
document.write (A.Splice (3,2)); // -> 4,5
document.write (a); // -> 1,2,3,6,7,8,9
document.write (A.Splice (4)); // -> 7,8,9 Hinweis: Rückkehr unter IE leer zurück
document.write (a); // -> 1,2,3,6
document.write (A.Splice (0,1)); // -> 1
document.write (a); // -> 2,3,6
document.write (A.Splice (1,1, ["aa", "bb", "cc"])); // -> 3
document.write (a); // -> 2, AA, BB, CC, 6,7,8,9
document.write (A.Splice (1,2, "ee"). Join ("#")); // -> AA, BB, CC#6
document.write (a); // -> 2, ee, 7,8,9
document.write (a.Splice (1,2, "cc", "aa", "tt"). Join ("#")); // -> ee#7
document.write (a); // -> 2, cc, aa, tt, 8,9
Beachten Sie, dass diese Methode in IE ist. Der zweite Parameter ist erforderlich. Wenn es nicht gefüllt ist, wird es standardmäßig 0. Zum Beispiel A.Splice (4) und in IE kehrt es leer zurück. Der Effekt entspricht A.Splice (4,0)
tostring
Konvertieren Sie Arrays in Zeichenfolgen, nicht nur Arrays, sondern alle Objekte können diese Methode verwenden
Die Codekopie lautet wie folgt:
var a = [5,6,7,8,9, ["a", "bb"], 100];
document.write (a.tostring ()); // -> 5,6,7,8,9, A, BB, 100
var b = neues Datum ()
document.write (b.tostring ()); // -> Sa 8. August 17:08:32 UTC+0800 2009
var c = Funktion (s) {
Warnungen;
}
document.write (c.tostring ()); // -> Funktion (s) {alert (s); }
Boolescher Wert gibt true oder falsch zurück, und Objektobjektobjektname]
Im Vergleich zur join () -Methode ersetzt join () nur eindimensionale Arrays, während toString () das gesamte Array vollständig planarisiert (unabhängig von eindimensional oder mehrdimensional).
Gleichzeitig kann diese Methode für die Dezimal-, Binär-, Eng -und Hexadezimal -Konvertierung verwendet werden, beispielsweise:
Die Codekopie lautet wie folgt:
var a = [5,6,7,8,9, "a", "bb", 100];
für (var i = 0; i <A.Length; i ++) {
document.write (a [i] .ToString () + "binär ist" + a [i] .ToString (2) + ", Octal ist" + a [i] .ToString (8) + ", hexadezimal ist" + a [i] .ToString (16)); // -> 4,5
}
Ausgangsergebnis:
Die Codekopie lautet wie folgt:
Die Binärdatei von 5 ist 101, das Oktal ist 5 und der Hexadezimal 5 ist 5
Die binäre Binärin von 6 ist 110, das Oktal ist 6 und der Hexadezimal 6 ist 6
Die binäre Binärin von 7 ist 111, das Oktal ist 7 und das Hexadezimal ist 7
Die Binärdatei von 8 beträgt 1000, das Oktal ist 10 und der Hexadezimal 8 beträgt 8
Die Binärdatei von 9 ist 1001, das Oktal ist 11 und das Hexadezimal ist 9
Die Binärdatei von a ist a, das Oktal ist a und das Hexadezimal ist a
Das Binär von BB ist BB, das Oktal ist BB und das Hexadezimal ist BB.
Die Binärdehnung von 100 ist 1100100, das Oktal ist 144 und das Hexadezimal 64.
Die Konvertierung kann nur an Elementen durchgeführt werden. Wenn das gesamte Array konvertiert wird, wird das Array intakt zurückgegeben.
Tolocalestring
Gibt die lokale Formatzeichenfolge zurück, die hauptsächlich am Datumsobjekt verwendet wird
Die Codekopie lautet wie folgt:
var a = new Date ();
document.write (a.tostring ()); // -> Sa 8. August 17:28:36 UTC+0800 2009
document.write (a.tolocalestring ()); // -> 8. August 2009 17:28:36
document.write (a.tolocaledateString ()); // -> 8. August 2009
Der Unterschied besteht darin, dass toString () das Standardformat zurückgibt und Tolocalestring () das vollständige Datum des lokalen Formats (in [Bedienfeld] >> [Region und Sprachoptionen] zurückgibt, indem die Formate [Zeit] und [langes Datum] geändert werden), tolocaledatestring () dieselbe wie Tolocalestring () ist, aber es dauert nur weniger Zeit.
Wert
Geben Sie verschiedene Originalwerte gemäß verschiedenen Objekten zurück. Bei Verwendung für die Ausgabe ähnelt es ToString (). ToString () gibt jedoch den String -Typ zurück und ValueOf () gibt den ursprünglichen Objekttyp zurück
Die Codekopie lautet wie folgt:
var a = [1,2,3, [4,5,6, [7,8,9]];
var b = neues Datum ();
var c = true;
var d = function () {
Alarm ("Sunnycat");
};
document.write (a.Valueof ()); // -> 1,2,3,4,5,6,7,8,9
document.write (typeof (a.Valueof ())); // -> Objekt
document.write (B. valueof ()); // -> 1249874470052
document.write (typeof (b.Valueof ())); // -> Nummer
document.write (c.Valueof ()); // -> wahr
document.write (typeof (c.Valueof ())); // -> boolean
document.write (d.Valueof ()); // -> function () {alert ("sunnycat"); }
document.write (typeof (d. -valueof ())); // -> Funktion
Arrays sind auch Objekte
Die Codekopie lautet wie folgt:
var a = [1,2,3, [4,5,6, [7,8,9]];
var aa = a.Valueof ();
document.write (aa [3] [3] [1]); // -> 8
Das Datumsobjekt gibt die Anzahl der Millisekunden ab dem 1. Januar 1970 zurück, und die Mathematik- und Fehlerobjekte haben keine Mehrwertmethode.