Das Hinzufügen von Elementen zu einem Array in JavaScript ist ein sehr einfaches Problem. JavaScript selbst bietet eine große Anzahl solcher Funktionen. Wir können die JS-Besitzfunktionen verwenden, um dem Array schnell Elemente hinzuzufügen. Dieser Artikel fasst die folgenden Methoden von JavaScript für Array Addition zusammen.
Die Methode von arr.concat (arr2) wurde üblicherweise zum Anhängen eines Arrays verwendet. Das Beispiel lautet wie folgt:
Die Codekopie lautet wie folgt:
<script type = "text/javaScript">
var arr = New Array (3);
arr [0] = "Testarray 1 ist 1";
arr [1] = "Testarray 1 ist 2";
arr [2] = "Testarray 1 ist 3";
var arr2 = Neuarray (3);
arr2 [0] = "Testarray 2 ist 1";
arr2 [1] = "Testarray 2 ist 2";
arr2 [2] = "Testarray 2 ist 3";
document.write (arr.concat (arr2)+"<br/>");
document.write (arr.concat ("Ihr Onkel 2", "Ihr Onkel 3")+"<br/>")
</script>
Viele Menschen waren verwirrt über die Ergänzung und Löschung von JS -Array -Elementen. Jetzt werde ich den folgenden Testcode geben:
Die Codekopie lautet wie folgt:
var arr = new Array ();
arr [0] = "aaa";
arr [1] = "BBB";
arr [2] = "CCC";
//alert(arr.length);//3
arr.pop ();
//alert(arr.length);//2
//alert(arr-arr.length-1 weibliches);//bbb
arr.pop ();
//alert(arr-arr.length-1 weibliche ))//aaa
//alert(arr.length);//1
var arr2 = new Array ();
//alert(arr2.Length);//0
arr2 [0] = "aaa";
arr2 [1] = "BBB";
//alert(arr2.Length);//2
arr2.pop ();
//alert(arr2.Length);//1
arr2 = arr2.slice (0, arr2.Length-1);
//alert(arr2.Length);//0
arr2 [0] = "aaa";
arr2 [1] = "BBB";
arr2 [2] = "CCC";
arr2 = arr2.slice (0,1);
ALERT (arr2.Length); // 1
Alert (arr2 [0]); // aaa
ALERT (arr2 [1]); // undefiniert
Verschiebung: Löschen Sie das erste Element des ursprünglichen Arrays und geben Sie den Wert des gelöschten Elements zurück. Wenn das Array leer ist, kehren Sie undefiniert zurück
var a = [1,2,3,4,5];
var b = a.shift (); // A: [2,3,4,5] B: 1
nicht geschaltet: Fügen Sie den Parameter zum Beginn des ursprünglichen Arrays hinzu und geben Sie die Länge des Arrays zurück
var a = [1,2,3,4,5];
var b = a.unshift (-2, -1); // a: [-2, -1,1,2,3,4,5] b: 7
Hinweis: Der Testrückgabewert in IE6.0 ist immer undefiniert, und der Testrückgabewert in FF2.0 beträgt 7, sodass der Rückgabewert dieser Methode unzuverlässig ist. Wenn Sie den Rückgabewert verwenden müssen, können Sie Splice anstelle dieser Methode verwenden.
Pop: Löschen Sie das letzte Element des ursprünglichen Arrays und geben Sie den Wert des gelöschten Elements zurück. Wenn das Array leer ist, kehren Sie undefiniert zurück
var a = [1,2,3,4,5];
var b = a.pop (); // a: [1,2,3,4] b: 5 // Wenn Sie nicht zurückkehren müssen, rufen Sie es einfach direkt an
Drücken: Fügen Sie den Parameter zum Ende des ursprünglichen Arrays hinzu und geben Sie die Länge des Arrays zurück
var a = [1,2,3,4,5];
var b = a.push (6,7); // A: [1,2,3,4,5,6,7] B: 7
CONECAT: Gibt ein neues Array zurück, das aus dem Hinzufügen von Parametern zum ursprünglichen Array besteht.
var a = [1,2,3,4,5];
var b = a.concat (6,7); // a: [1,2,3,4,5] B: [1,2,3,4,5,6,7]
Spleiß (Start, DeleteCount, Val1, Val2, ...): DeleteCount -Element aus der Startposition und einfügen Val1, Val2, ...
var a = [1,2,3,4,5];
var b = A.Splice (2,2,7,8,9); // a: [1,2,7,8,9,5] b: [3,4]
var b = A.Splice (0,1); // gleiche Verschiebung
A.SPLICE (0,0, -2, -1); var b = a.länge; // gleiche Unschänder
var b = A.Splice (A.Length-1,1); // gleicher Pop
A.SPLICE (A.Length, 0,6,7); var b = a.länge; // gleicher Druck
Reverse: Inverse das Array
var a = [1,2,3,4,5];
var b = A.Reverse (); // A: [5,4,3,2,1] B: [5,4,3,2,1]
Sortieren (OrderFunction): Sortieren Sie das Array nach angegebenen Parametern
var a = [1,2,3,4,5];
var b = a.sort (); // a: [1,2,3,4,5] B: [1,2,3,4,5]
Slice (Start, Ende): Gibt ein neues Array zurück, das aus Elementen aus dem angegebenen Start -Index zum End -Index im ursprünglichen Array besteht.
var a = [1,2,3,4,5];
var b = a.slice (2,5); // A: [1,2,3,4,5] B: [3,4,5]
Join (Separator): Gruppieren Sie die Elemente des Arrays in eine Zeichenfolge mit Separator als Trennzeichen. Wenn Sie ausgelassen werden, verwenden Sie Kommas standardmäßig als Trennzeichen.
var a = [1,2,3,4,5];
var b = a.join ("|"); // a: [1,2,3,4,5] b: "1 | 2 | 3 | 4 | 5"
Hier ist eine weitere Möglichkeit, Array zu verwenden, um JavastringBuffer zu simulieren, um Zeichenfolgen zu verarbeiten:
/**
* String -Verarbeitungsfunktion
*/
Funktion StringBuffer ()
{
var arr = new Array;
this.append = function (str)
{
arr [arr.length] = str;
};
this.toString = function ()
{
return arr.join (""); // das Anhang -Array in eine Zeichenfolge pingen
};
}
Heute habe ich plötzlich festgestellt, dass Join eine gute Möglichkeit ist, Arrays in Strings in der Anwendung umzuwandeln. Deshalb habe ich sie in Objekte eingekapselt und verwendet:
/**
* Konvertieren Sie ein Array in eine Zeichenfolge, die durch ein bestimmtes Symbol aufgeteilt wird
*/
Funktion ArrayToString (arr, Trennzeichen)
{
if (! separator) separator = ""; // Wenn ein Trennzeichen null ist, ist es standardmäßig leer
return arr.join (Trennzeichen);
}
/**
* Finden Sie die im Array enthaltene Zeichenfolge
*/
Funktion ArrayFindString (arr, String)
{
var str = arr.join ("");
return Str.Indexof (String);
}
Schließlich gibt es einen Test für Freunde, die gerne a.push.apply (a, b) spielen; Beim Anhang von Arrays.
A.push.Apply (a, b); Dieser selbstdenkende Weg ist cool, und Sie müssen keine für die Schleife schreiben, und Sie haben keine Probleme gestoßen. Bis heute werde ich auf eine Grube stoßen, wenn das B, das ich anhängen möchte, ein großes Array ist.
Die Codekopie lautet wie folgt:
a = new Array ();
B = Neuarray (125624);
A.push.Apply (a, b);
Der obige Code bringt die folgende Ausnahme unter Mac Chrome aus
Uncornd Rangerror: Maximale Call -Stapelgröße überschritten
Wenn Sie das Array in B = New Array (125623) ändern; Es wäre schön, ein kleineres Element zu haben. Ich habe getestet, dass andere Browser auch große Arrays haben, um einen Fehler zu machen, aber die kritischen Werte verschiedener Browser sind immer noch unterschiedlich
Der hier gegebene Vorschlag ist, ehrlich und praktisch zu sein, um nicht nur die Ausnahmeprobleme großer Arrays zu vermeiden, sondern auch die Leistung von foreach als die schnellste zu betrachten.