Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung der JavaScript-Array-Operationen

Detaillierte Erläuterung der JavaScript-Array-Operationen

高洛峰
高洛峰Original
2017-02-06 09:44:071186Durchsuche

1. Erstellung von Arrays

var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值

Es ist zu beachten, dass die zweite Methode zwar ein Array mit einer angegebenen Länge erstellt, das Array jedoch insgesamt eine variable Länge hat Das heißt, auch wenn die Länge mit 5 angegeben ist, kann das Element immer noch über die angegebene Länge hinaus gespeichert werden. Hinweis: Die Länge ändert sich entsprechend.

2. Zugriff auf Array-Elemente

var testGetArrValue=arrayObj[1]; //获取数组的元素值
arrayObj[1]= "这是新值"; //给数组元素赋予新的值

3. Array-Elemente hinzufügen

Code

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

4. Löschen von Array-Elementen

arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

5. Abfangen und Zusammenführen von Arrays

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

6 , Kopieren von Array

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

7. Sortierung von Array-Elementen

arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort(); //对数组元素排序,返回数组地址

8. Stringisierung von Array-Elementen

arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用

2. 3 Attribute von Array-Objekten

1. Längenattribut

Das Längenattribut stellt die Länge des Arrays dar, also die Anzahl der Elemente darin Es . Da der Index eines Arrays immer bei 0 beginnt, sind die oberen und unteren Grenzen eines Arrays: 0 bzw. Länge-1. Im Gegensatz zu den meisten anderen Sprachen ist die Längeneigenschaft von JavaScript-Arrays variabel, was besondere Aufmerksamkeit erfordert. Wenn das Längenattribut größer eingestellt wird, ändert sich der Zustand des gesamten Arrays nicht. Nur das Längenattribut wird größer, wenn das Längenattribut kleiner als das Original gesetzt wird, und die Elemente im ursprünglichen Array mit Indizes, die größer oder gleich sind Länge wird Alle Werte gehen verloren. Das Folgende ist ein Beispiel, das die Änderung des Längenattributs demonstriert:

Code

var arr=[12,23,5,3,25,98,76,54,56,76];
//定义了一个包含10个数字的数组
alert(arr.length); //显示数组的长度10
arr.length=12; //增大数组的长度
alert(arr.length); //显示数组的长度已经变为12
alert(arr[8]); //显示第9个元素的值,为56
arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃
alert(arr[8]); //显示第9个元素已经变为"undefined"
arr.length=10; //将数组长度恢复为10
alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"

Aus dem obigen Code können wir die Natur des Längenattributs deutlich erkennen. Das Längenobjekt kann jedoch nicht nur explizit festgelegt, sondern auch implizit geändert werden. Sie können in JavaScript auch eine nicht deklarierte Variable verwenden (die sich auf ein Element mit einem Index bezieht, der größer oder gleich der Länge ist). In diesem Fall wird der Wert des Längenattributs auf festgelegt Wert des verwendeten Elementindex. Zum Beispiel der folgende Code:

var arr=[12,23,5,3,25,98,76,54,56,76];
alert(arr.length);
arr[15]=34;
alert(arr.length);

Der Code definiert auch zunächst ein Array mit 10 Zahlen. Aus der Alert-Anweisung geht hervor, dass seine Länge 10 beträgt. Dann wird das Element mit dem Index 15 verwendet und ihm der Wert 15 zugewiesen, d. h. arr[15]=34. Zu diesem Zeitpunkt wird die Alert-Anweisung verwendet, um die Länge des Arrays auszugeben, und das Ergebnis ist 16. Unabhängig davon ist dies eine überraschende Funktion für Entwickler, die an stark typisierte Programmierung gewöhnt sind. Tatsächlich beträgt die Anfangslänge eines mit new Array() erstellten Arrays 0. Es ist die Operation undefinierter Elemente, die dazu führt, dass sich die Länge des Arrays ändert.

Wie Sie der obigen Einführung entnehmen können, ist das Längenattribut so magisch, dass Sie es verwenden können, um die Kapazität des Arrays einfach zu erhöhen oder zu verringern. Daher hilft ein tiefes Verständnis des Längenattributs, es während des Entwicklungsprozesses flexibel zu nutzen.

2. Das Prototypattribut

gibt eine Referenz auf den Prototyp des Objekttyps zurück. Die Prototypeigenschaft ist für das Objekt üblich.

objectName.prototype

objectName-Parameter ist der Name des Objektobjekts.

Beschreibung: Verwenden Sie das Prototypattribut, um eine Reihe grundlegender Funktionen der Objektklasse bereitzustellen. Neue Instanzen eines Objekts „erben“ die dem Prototyp des Objekts zugewiesenen Operationen.

Für Array-Objekte veranschaulicht das folgende Beispiel die Verwendung des Prototyp-Attributs.

Fügen Sie dem Array-Objekt eine Methode hinzu, um den maximalen Elementwert im Array zurückzugeben. Um dies zu erreichen, deklarieren Sie eine Funktion, fügen Sie sie zu Array.prototype hinzu und verwenden Sie sie.

Code

function array_max()
 {
 var i,
 max = this[0];
 for (i = 1; i < this.length; i++)
 {
  if (max < this[i])
  max = this[i];
 }
 return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max();

Nachdem dieser Code ausgeführt wurde, enthält y den Maximalwert im Array x, oder sagen wir 6.

3. Das Konstruktorattribut

stellt die Funktion dar, die das Objekt erstellt.

object.constructor //object ist der Name des Objekts oder der Funktion.

Erklärung: Die Konstruktoreigenschaft ist Mitglied aller Objekte mit Prototyp. Sie umfassen alle nativen JScript-Objekte mit Ausnahme von Global- und Math-Objekten. Die Eigenschaft „Konstruktor“ enthält einen Verweis auf die Funktion, die eine bestimmte Objektinstanz erstellt.

Zum Beispiel:

x = new String("Hi");
if (x.constructor == String) // 进行处理(条件为真)。

oder

function MyFunc {
 // 函数体。
}
y = new MyFunc;
if (y.constructor == MyFunc) // 进行处理(条件为真)。

Für Arrays:

y = new Array();

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels jedem beim Lernen oder Arbeiten helfen kann Webseite!

Ausführlichere Erläuterungen zu JavaScript-Array-Operationen und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

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