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:
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)); // -> 123,sunnycat alert(a); // -> 123 alert(b.concat(c, d)); // -> sunnycatwww,21,ido[object Object] alert(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 Strings verwendet werden kann. Wenn es sich bei dem verbundenen (a vor) um einen numerischen Wert, einen booleschen Wert oder ein Objekt handelt, wird bei Strings ein Fehler gemeldet sind mit Arrays verbunden, Zeichen Die Zeichenfolge wird mit dem ersten Element des Arrays gespleißt, um ein neues Element zu bilden, und die Array-Verbindungszeichenfolge fügt neue Elemente an (ich kenne den Grund dafür nicht, bitte geben Sie ihn an, wenn Sie). wissen). Bei Arrays, die Arrays und Objekte enthalten, bleiben diese nach der Verbindung unverändert.
join
Verbinden Sie die Arrays mit angegebenen Trennzeichen und konvertieren Sie die Arrays in Strings:
var a = ['a','b','c','d','e','f','g']; lert(a.join(",")); // -> a,b,c,d,e,f,g 相当于a.toString() alert(a.join(" x ")); // -> a x b x c x d x e x f x g
Das ist leicht zu verstehen, aber Sie brauchen es Achtung: Der Zweck besteht darin, nur das eindimensionale Array zu konvertieren. Wenn das Array ein Array enthält, wird die durch Join angegebene Zeichenfolgenverbindung nicht verwendet, sondern die Standardeinstellung toString (), z. B.
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: Im Array Array gibt es keine Verwendung für die *-Verkettung
pop
, um das letzte Element des Arrays zu löschen und zurückzugeben element
var a = ["aa","bb","cc"]; document.write(a.pop()); // -> cc document.write(a); // -> aa, bb
Hinweis: Wenn das Array leer ist, fügt undefiniert
push
ein Array am Ende des Arrays hinzu und gibt zurück die neue Länge des Arrays. Der Unterschied zwischen
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
und concat besteht darin, dass concat das ursprüngliche Array nicht beeinflusst und das neue Array direkt zurückgibt, während push das ursprüngliche Array direkt ändert und die neue Länge zurückgibt des Arrays
sortieren
Array-Sortierung, schauen wir uns das zuerst an Beispiel
var a = [11,2,3,33445,5654,654,"asd","b"]; alert(a.sort()); // -> 11,2,3,33445,5654,654,asd,b
Ist das Ergebnis nicht sehr überraschend? Die Sortierung basiert nicht auf der Ganzzahlgröße, sondern auf dem Vergleich des ANSI-Codes des ersten Zeichens. Wenn ja, nehmen Sie das zweite Zeichen und vergleichen Sie es Vergleichen Sie dies anhand eines ganzzahligen Werts.
var a = [11,2,3,33445,5654,654]; a.sort(function(a,b) { return a - b; }); alert(a); // -> 2,3,11,654,5654,33445
Die Methode sort() hat einen optionalen Parameter, der die Funktion im Code darstellt. Nicht-Zahlen können nicht sortiert werden -Zahlen erfordern mehr Urteilsvermögen.
umgekehrte Sortierung
Die umgekehrte Sortierung eines Arrays ist dasselbe wie sort() Wert des ersten Zeichens zum Vergleich
var a = [11,3,5,66,4]; alert(a.reverse()); // -> 4,66,5,3,11
Wenn das Array auch ein Array enthält, wird es als Objekt behandelt und die Elemente werden nicht extrahiert
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
Sollte es sein 11 An letzter Stelle, 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, es wird viel klarer sein
shift
Löscht das erste Element des Arrays und gibt das Element zurück, ähnlich wie bei pop
var a = ["aa","bb","cc"]; document.write(a.shift()); // -> aa document.write(a); // -> bb,cc
Hinweis: Wenn das Array leer ist, undefiniert
Unshift
Das Gegenteil von Shift fügt Elemente am Anfang des Arrays hinzu und gibt die neue Länge des Arrays zurück
var a = ["aa","bb","cc"]; document.write(a.unshift(11)); // -> 4 注:IE下返回undefined 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("cat")); // -> 6 document.write(a); // -> cat,11,22,11,aa,bb,cc
Beachten Sie, dass dies der Fall ist Methode unter IE undefiniert zurückgibt, sieht aus wie ein Microsoft-Fehler, aber ich kann die neue Länge des Arrays in Firefox korrekt
slice
verwenden, um das Array zurückzugeben Fragment
var a = ['a','b','c','d','e','f','g']; alert(a.slice(1,2)); // -> b alert(a.slice(2)); // -> c,d,e,f,g alert(a.slice(-4)); // -> d,e,f,g alert(a.slice(-2,-6)); // -> 空
a. Slice(1,2), beginnend mit Index 1 bis zur Zahl zwischen Index 2, beachten Sie, dass das Element mit Index 2 nicht enthalten ist
Wenn es nur einen Parameter gibt, es ist standardmäßig das Ende des Arrays
-4 bedeutet das 4. Element von unten, daher werden die vier Elemente von unten zurückgegeben
Die letzte Zeile beginnt beim 2. von unten, da sie rückwärts abgefangen wird. Es ist offensichtlich, dass die vorherigen Elemente nicht abgerufen werden können, daher wird ein leeres Array zurückgegeben. Wenn Sie zu a.slice(-6,-2) wechseln und b,c,d,e
splice zurückgeben
löscht die Elemente eines Segments aus dem Array und gibt gelöschte Elemente zurück
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 注:IE下返回空 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 der zweite Parameter dieser Methode unter IE erforderlich ist. Wenn er nicht ausgefüllt ist Der Standardwert ist 0, z. B. a.splice(4). Unter IE wird leer zurückgegeben. Der Effekt entspricht a.splice(4,0)
toString
Array in String konvertieren, nicht nur Arrays, alle Objekte können diese Methode verwenden
var a = [5,6,7,8,9,["A","BB"],100]; document.write(a.toString()); // -> 5,6,7,8,9,A,BB,100 var b = new Date() document.write(b.toString()); // -> Sat Aug 8 17:08:32 UTC+0800 2009 var c = function(s){ alert(s); } document.write(c.toString()); // -> function(s){ alert(s); }
Der boolesche Wert gibt „true“ oder „false“ zurück, das Objekt gibt [Objektobjektname] zurück
Verglichen mit der Methode „join()“: „join“. () ersetzt nur das eindimensionale Array, während toString() das gesamte Array (ob eindimensional oder mehrdimensional) vollständig planarisiert ersetzt
Gleichzeitig kann diese Methode für dezimale, binäre, oktale, und hexadezimale Konvertierung, zum Beispiel:
var a = [5,6,7,8,9,"A","BB",100]; for(var i=0; i<a.length; i++){ document.write(a[i].toString() + " 的二进制是 " + a[i].toString(2) + " ,八进制是 " + a[i].toString(8) + " ,十六进制是 " + a[i].toString(16)); // -> 4,5 }
Ausgabeergebnis:
5 的二进制是 101 ,八进制是 5 ,十六进制是 5 6 的二进制是 110 ,八进制是 6 ,十六进制是 6 7 的二进制是 111 ,八进制是 7 ,十六进制是 7 8 的二进制是 1000 ,八进制是 10 ,十六进制是 8 9 的二进制是 1001 ,八进制是 11 ,十六进制是 9 A 的二进制是 A ,八进制是 A ,十六进制是 A BB 的二进制是 BB ,八进制是 BB ,十六进制是 BB 100 的二进制是 1100100 ,八进制是 144 ,十六进制是 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
Zurück zum lokalen Format String, wird hauptsächlich für Datumsobjekte verwendet
var a = new Date(); document.write(a.toString()); // -> Sat Aug 8 17:28:36 UTC+0800 2009 document.write(a.toLocaleString()); // -> 2009年8月8日 17:28:36 document.write(a.toLocaleDateString()); // -> 2009年8月8日
Der Unterschied besteht darin, dass toString() das Standardformat zurückgibt. und toLocaleString() gibt das vollständige Datum im lokalen Format zurück (in [Systemsteuerung]>>[Regions- und Sprachoptionen], durch Ändern des Formats [Zeit] und [langes Datum]), toLocaleDateString() ist dasselbe wie toLocaleString( ), außer dass die Zeit
valueOf
entsprechend unterschiedlich ist. Das Objekt gibt unterschiedliche Originalwerte zurück. Bei Verwendung für die Ausgabe ähnelt es toString(). aber toString() gibt den String-Typ zurück und valueOf() gibt den ursprünglichen Objekttyp zurück.
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()); // -> 1,2,3,4,5,6,7,8,9 document.write(typeof (a.valueOf())); // -> object document.write(b.valueOf()); // -> 1249874470052 document.write(typeof(b.valueOf())); // -> number document.write(c.valueOf()); // -> true document.write(typeof(c.valueOf())); // -> boolean document.write(d.valueOf()); // -> function () { alert("sunnycat"); } document.write(typeof(d.valueOf())); // -> function
Arrays sind ebenfalls Objekte, daher gibt typeof ( a.valueOf()) ein Objekt zurück, das immer noch ein Multi ist -dimensionales Array
var a = [1,2,3,[4,5,6,[7,8,9]]]; var aa = a.valueOf(); document.write(aa[3][3][1]); // -> 8
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 valueOf-Methode.
Das obige ist der detaillierte Inhalt vonZusammenfassung einiger häufig verwendeter Beispiele für die Verwendung von Array-Funktionen in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!