Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung von JavaScript-Arrays und allgemeinen Funktionen_Grundkenntnisse

Detaillierte Erläuterung von JavaScript-Arrays und allgemeinen Funktionen_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:49:021068Durchsuche

1. Lernen Sie Arrays kennen

Ein Array ist eine Sammlung bestimmter Datentypen. Der Datentyp kann eine Ganzzahl, eine Zeichenfolge oder sogar ein Objekt sein.
Javascript unterstützt keine mehrdimensionalen Arrays. Da Arrays jedoch Objekte enthalten können (ein Array ist auch ein Objekt), können Arrays durch gegenseitige Verschachtelung ähnliche Funktionen wie mehrdimensionale Arrays erreichen.

1.1 Array definieren

Deklarieren Sie ein Array mit 10 Elementen:

Kopieren Sie den CodeDer Code lautet wie folgt:
var a = new Array(10);

Zu diesem Zeitpunkt wurde der Speicherplatz für a geöffnet, der 10 Elemente enthält. Verwenden Sie den Array-Namen plus [Index], um ihn aufzurufen, z. B. a[2], aber das Element wurde zu diesem Zeitpunkt noch nicht initialisiert. Der Aufruf wird undefiniert zurückgeben.
Der folgende Code definiert ein Variablenarray und weist Werte zu.
Code kopieren Der Code lautet wie folgt:

var a = new Array();
a [0] = 10;
a[1] = "aaa";
a[2] = 12,6;

Wie oben erwähnt, können Objekte in Arrays platziert werden, zum Beispiel der folgende Code:

Kopieren Sie den Code Der Code lautet wie folgt:

var a = new Array();
a[0] = true;
a[1] = document.getElementById("text");
a[2] = { x:11, y:22};
a[3] = new Array();

Arrays können bei der Instanziierung auch direkt Werte zugewiesen werden, zum Beispiel:

Code kopieren Der Code lautet wie folgt:

var a = new Array(1, 2, 3, 4, 5);
var b = [1, 2, 3, 4, 5];

a und b sind beide Arrays, aber b verwendet eine implizite Deklaration, um eine weitere Instanz zu erstellen. Wenn zu diesem Zeitpunkt Alert(a==b) verwendet wird, wird false

angezeigt

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 var a = new Array(10,3) verwenden. , wird ein Fehler gemeldet
Aber wie bereits erwähnt, können Arrays Objekte enthalten, sodass Sie ein Element im Array als Array deklarieren können, zum Beispiel:

Code kopieren Der Code lautet wie folgt:

var a = new Array();
a [0] = new Array();
a[0][0] = 1;
alert(a[0][0]); //Pop up 1

Anweisung Beim Zuweisen
Code kopieren Der Code lautet wie folgt:

var a = neues Array([1, 2,3], [4,5,6],[7,8,9]);
var b = [[1,2,3], [4,5,6] , [7,8, 9]];

Der Effekt ist derselbe: a verwendet eine reguläre Instanziierung, b ist eine implizite Deklaration und das Ergebnis ist ein mehrdimensionales Array.

1.3 Array-Literale

Ich weiß wirklich nicht, wie das auf Chinesisch heißt, Textarray?
Apropos Arrays: Arrays sind eigentlich spezielle Objekte. Werte und Aufrufe werden über Objektname.property, object.method() und Arrays abgerufen Array-Literale sind in vielerlei Hinsicht mit Arrays vergleichbar. Ihre Deklaration und ihr Aufruf unterscheiden sich jedoch grundlegend von Arrays >

Code kopieren Der Code lautet wie folgt:
var aa = new Object();
aa .x = "cat";
aa.y = "sunny";
alert(aa.x); //Pop up cat

Erstellen Sie ein einfaches Objekt, wenn es als Array-Literal verwendet wird. Wenn Sie „alert(aa["x"]) verwenden, wird auch cat

angezeigt

Code kopieren Der Code lautet wie folgt:
var a = {x: "cat" , y: "sunny"};
alert(a["y"]); //pop up sunny

Dies ist eine andere Möglichkeit, ein Objekt zu erstellen, das Ergebnis ist das gleiche


2. Betrieb von Array-Elementen

Wie oben erwähnt, können Sie Elemente über das Array [Index] lesen und schreiben.
Der Bereich des Indexes ist 0 – (23 (hochgestellt 2) -1), und der Index ist eine negative Zahl, Gleitkomma oder Selbst bei einem booleschen Wert wird das Array automatisch in den Objekttyp konvertiert, zum Beispiel:

Code kopieren Der Code lautet wie folgt folgt:

var b = new Array();
b[2.2] = "XXXXX";
alert(b[2.2]); //-> >
Dies entspricht b["2.2"] = "XXXXX".

2.1 Array-Schleife

Code kopieren Der Code lautet wie folgt:
var a = [1,2,3,4,5,6];
for(var i =0; ialert(a[i]);
}

Dies ist die am häufigsten verwendete Variante. Beim Durchlaufen des Arrays wird der Code 1 bis 6 nacheinander angezeigt.
Es gibt eine weitere häufig verwendete Variante:

Code kopieren Der Code lautet wie folgt:
var a = [1,2,3,4,5 ,6];
for(var e in a){
alert(e);
}

Erscheint immer noch 1 bis 6 in der Reihenfolge, in der es sich um ein Traversalobjekt handelt (Array ist ein spezielles Objekt). Da das Array keinen Attributnamen hat, wird der Wert direkt ausgegeben . Diese Strukturanweisung wird für das Objekt verwendet. Zum Beispiel:


Code kopieren Der Code lautet wie folgt:
var a = {x:1,y :2,z:3};
for(var e in a){
alert(e ":" a[e]);
}

Zu diesem Zeitpunkt erhält e den Attributnamen, d. h. x, y, x, und um den Wert zu erhalten, wird der Array-Name [Attribut] verwendet, sodass a[e] äquivalent zu a["x" ist. ], a[" y“], a["z"]

2.2 Allgemeine Array-Funktionen


concat

Hängt ein Array nach dem vorhandenen Array an und gibt das neue Array zurück, ohne das vorhandene Array zu beeinflussen:

Code kopieren Der Code 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]]];

alert(a.concat(b)); // -> (a) ; // - -> 123
alert(b.concat(c, d)); // -> )); / / -> www,21,ido,sunnycat
alert(e.concat(11,22,33).join(" # ")); 4 # 5, 6,7,8 # 11 # 22 # 33



Es ist zu beachten, dass es nur für Arrays oder Strings verwendet werden kann, wenn es sich bei der Verbindung (das vorherige a) um einen numerischen Wert, einen booleschen Wert oder ein Objekt handelt, wird ein Fehler gemeldet, wenn ein String mit einem verbunden wird Auf die Zeichenfolge folgt das erste Element des Arrays, das in neue Elemente gespleißt wird, während die Array-Verbindungszeichenfolge neue Elemente anhängt (ich kenne den Grund dafür nicht, geben Sie ihn bitte an, wenn Sie ihn kennen). Arrays und Objekte bleiben nach der Verbindung intakt.

beitreten

Verketten Sie die Arrays mit angegebenen Trennzeichen und konvertieren Sie die Arrays in Zeichenfolgen:


Kopieren Sie den Code Der Code lautet wie folgt:var a = ['a','b','c','d','e','f','g'];
lert(a.join( "," )); // -> a,b,c,d,e,f,g sind äquivalent zu a.toString()
alert(a.join(" x ")); > a x b x c x d x e x f x g



Dies ist leicht zu verstehen, es sollte jedoch beachtet werden, dass nur eindimensionale Arrays konvertiert werden. Wenn das Array Arrays enthält, wird nicht die durch Join angegebene Zeichenfolgenverbindung verwendet, sondern die Standardeinstellung toString() verwendet, wie zum Beispiel

Code kopieren Der Code 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 innerhalb des Arrays wird nicht für *-Verbindungen verwendet

Pop

Löschen Sie das letzte Element des Arrays und geben Sie das Element zurück

Code kopieren Der Code lautet wie folgt:

var a = ["aa", "bb", "cc"];
document.write(a.pop()); // -> ); // -> aa, bb

Hinweis: Wenn das Array leer ist, wird undefiniert zurückgegeben

drücken

Fügen Sie am Ende des Arrays ein Array hinzu und geben Sie die neue Länge des Arrays zurück

Code kopieren Der Code 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])); // -> ,dd, 1,2,3


Der Unterschied zu concat besteht darin, dass concat das ursprüngliche Array nicht beeinflusst und direkt ein neues Array zurückgibt, während push das ursprüngliche Array direkt ändert und die neue Länge des Arrays zurückgibt

sortieren

Array-Sortierung, schauen wir uns zuerst ein Beispiel an


var a = [11,2,3,33445,5654,654,"asd",b"];
alert(a.sort()); ,33445,5654, 654,asd,b


Ist das Ergebnis nicht überraschend? Ja, die Sortierung erfolgt nicht nach Ganzzahlgröße, sondern nach dem Vergleich des ersten Zeichens. das zweite Zeichen wird genommen und dann Verhältnis, wenn Sie anhand ganzzahliger Werte vergleichen möchten, können Sie dies tun

var a = [11,2,3 ,33445, 5654,654];
a.sort(function(a,b) {
return a - b;
});
alert(a); // -> ,3, 11,654,5654,33445


Die sort()-Methode verfügt über einen optionalen Parameter, der die Funktion im Code darstellt. Nicht-Zahlen können nicht mehr sortiert werden, daher werde ich hier nicht näher darauf eingehen

umgekehrt

Die umgekehrte Sortierung des Arrays ist dasselbe wie sort(), wobei der ASCII-Wert des ersten Zeichens zum Vergleich verwendet wird


Code kopierenCode wie folgt:
var a = [11,3,5,66,4];
alert(a.reverse()); ,5,3 ,11


Wenn das Array auch ein Array enthält, wird es als Objekt behandelt und die Elemente werden nicht extrahiert


Code kopieren Code wie folgt:
var a = ['a','b','c','d','e','f','g',[4,11 ,33] ];
alert(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


Logischerweise sollte es am Ende von Zeile 11 stehen, da 4, 11, 33 hier als vollständige Objekte verglichen werden und daher an erster Stelle stehen. Wenn Sie es nicht verstehen, verwenden Sie join(), um sie aneinanderzureihen zusammen, und es wird viel klarer sein


Schicht

Löschen Sie das erste Element des Arrays und geben Sie das Element zurück, das Pop ähnelt


var a = ["aa","bb","cc"];
document.write(a.shift()); >document.write( a); // -> bb,cc



Hinweis: Wenn das Array leer ist, wird undefiniert zurückgegeben

Schaltung ausschalten

Im Gegensatz zur Verschiebung fügen Sie Elemente an der Vorderseite des Arrays hinzu und geben die neue Länge des Arrays zurück


Code kopieren Der Code lautet wie folgt:

var a = ["aa","bb","cc"];
document.write(a.unshift(11)); Gibt undefiniert im IE zurück
document.write(a); // -> 11,aa,bb,cc
document.write(a.unshift([11,22])); document.write(a); // -> 11,22,11,aa,bb,cc
document.write(a.unshift("cat")); .write(a); // -> cat,11,22,11,aa,bb,cc


Beachten Sie, dass diese Methode unter IE undefiniert zurückgibt. Es scheint ein Microsoft-Fehler zu sein. Ich kann die neue Länge des Arrays unter Firefox korrekt verwenden

Scheibe

Array-Fragment zurückgeben

Code kopieren Der Code lautet wie folgt:var a = ['a',' b', 'c','d','e','f','g'];
alert(a.slice(1,2)); // -> a.slice (2)); // -> c,d,e,g
alert(a.slice(-4)); // -> >alert( a.slice(-2,-6)); // -> Empty



a.slice(1,2), die Zahl von Index 1 bis Index 2, beachten Sie, dass das Element mit Index 2 nicht enthalten ist
Wenn nur ein Parameter vorhanden ist, wird standardmäßig der letzte
verwendet -4 des Arrays stellt das 4. Element von unten dar, daher werden die vier Elemente von unten zurückgegeben.
Da die letzte Zeile ab dem 2. von unten beginnt, ist es offensichtlich, dass die vorherigen Elemente vorhanden sind kann nicht abgerufen werden, daher wird ein leeres Array zurückgegeben. Wenn es in a.slice(-6,-2) geändert wird, wird b,c,d,e zurückgegeben


Spleiß

Löschen Sie ein Element eines Fragments aus dem Array und geben Sie das gelöschte Element zurück

Code kopieren

Der Code lautet wie folgt:var a = [1,2,3 ,4, 5,6,7,8,9];document.write(a.splice(3,2)); // -> / -> ; 1,2,3,6,7,8,9document.write(a.splice(4)); // -> 🎜>Dokument wird zurückgegeben. // -> .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(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("#")); ; // -> 2,cc,aa,tt,8,9



Beachten Sie, dass der zweite Parameter dieser Methode im IE erforderlich ist. Wenn er nicht ausgefüllt ist, wird er standardmäßig auf 0 gesetzt, z. B. a.splice(4), und der Effekt entspricht a. splice(4,0 )


toString


Arrays in Strings konvertieren, sondern alle Objekte können diese Methode verwenden

Code kopieren

Der Code lautet wie folgt :


var a = [5,6,7,8,9,["A","BB"],100];

document.write(a.toString()) ; / / -> 5,6,7,8,9,A,BB,100var b = new Date()document.write(b.toString()); Sa. 8. August 17:08:32 UTC 0800 2009var c = function(s){alert(s);}document.write(c.toString()); -> ; Funktion(en){ Warnung(en); }


Der boolesche Wert gibt „true“ oder „false“ zurück, das Objekt gibt [Objekt-Objektname] zurück
Im Vergleich zur Methode „join()“ ersetzt „join()“ nur ein eindimensionales Array, während „toString()“ das gesamte Array ersetzt (unabhängig von der eindimensionalen). Array).Dimensional oder mehrdimensional) völlig flach
Gleichzeitig kann diese Methode für die Dezimal-, Binär-, Oktal- und Hexadezimalkonvertierung verwendet werden, zum Beispiel:




Code kopieren

Der Code lautet wie folgt:


var a = [5,6,7,8,9,"A","BB" ,100];

for(var i=0; idocument.write(a[i].toString() " Das Binärsystem ist " a[i].toString (2) " und das Oktalsystem ist " a[i].toString(8) ", hexadezimal ist " a[i].toString(16)); // ->
Ausgabeergebnis:
Code kopieren Der Code lautet wie folgt:

Die Binärdatei von 5 ist 101, das Oktalsystem ist 5, das Hexadezimalsystem ist 5
Das Binärsystem von 6 ist 110, das Oktalsystem ist 6, das Hexadezimalsystem ist 6
Das Binärsystem von 7 ist 111, das Oktal System ist 7 und das Hexadezimalsystem ist 7
Das Binärsystem von 8 ist 1000, das Oktalsystem ist 10 und das Hexadezimalsystem ist 8. Das Binärsystem von
9 ist 1001, das Oktalsystem ist 11 und das Hexadezimalsystem ist 9. Das Binärsystem von A
A ist A, das Oktalsystem ist A und das Dezimalsystem ist A. Hexadezimal ist A
BB, Binär ist BB, Oktal ist BB und Hexadezimal ist BB
100 ist 1100100 im Binärformat, Oktal ist 144 und Hexadezimal ist 64

Die Konvertierung kann nur für Elemente durchgeführt werden. Wenn das gesamte Array konvertiert wird, wird das Array unverändert zurückgegeben

toLocaleString

Gibt eine lokale Formatzeichenfolge zurück, die hauptsächlich für Datumsobjekte verwendet wird

Code kopieren Der Code lautet wie folgt:

var a = new Date();
document .write(a.toString()); // -> Sa 8. August 17:28:36 UTC 0800 , 2009 Datum 17:28:36
document.write(a.toLocaleDateString()); // ->
Der Unterschied besteht darin, dass toString() das Standardformat zurückgibt und toLocaleString() das vollständige Datum im lokalen Format zurückgibt (in [Systemsteuerung]>>[Regional- und Sprachoptionen], durch Ändern der [Zeit] und [Long Date]-Formate) ist toLocaleDateString() dasselbe wie toLocaleString(), benötigt aber weniger Zeit
valueOf

Gibt je nach Objekt unterschiedliche Originalwerte zurück. Bei Verwendung für die Ausgabe ähnelt es toString(), aber toString() gibt den String-Typ zurück, während valueOf() den ursprünglichen Objekttyp zurückgibt

Code kopieren

Der Code lautet wie folgt:var a = [1,2,3 ,[4 ,5,6,[7,8,9]]];var b = new Date();
var c = true;
var d = function(){
Alert(" sunnycat");
};
document.write(a.valueOf()); // -> >document.write(typeof (a.valueOf())); // -> object
document.write(b.valueOf()); b.valueOf ())); // -> number
document.write(c.valueOf())); ; // -> boolean
document.write(d.valueOf()); // -> function () { warning("sunnycat"); ()) ); // -> Funktion



Arrays sind auch Objekte, daher gibt typeof (a.valueOf()) ein Objekt zurück, das immer noch ein mehrdimensionales Array ist




Code kopieren

Der Code lautet wie folgt:

Das Date-Objekt gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 zurück. Die Math- und Error-Objekte verfügen nicht über die Methode valueOf.
Stellungnahme:
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