Heim >Web-Frontend >js-Tutorial >Beispielanalyse einer js-Array-Operation
Dieser Artikel teilt Ihnen hauptsächlich die Analyse von Beispielen für js-Array-Operationen mit, hauptsächlich in Form von Code, in der Hoffnung, allen zu helfen.
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, geben Sie undefiniert zurück
var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1
unshift: Parameter am Anfang des ursprünglichen Arrays hinzufügen und die Länge des Arrays zurückgeben
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 unter IE6.0 ist immer undefiniert, FF2.0 Der Rückgabewert des nächsten Tests ist 7, daher ist der Rückgabewert dieser Methode unzuverlässig. Wenn der Rückgabewert benötigt wird, kann anstelle dieser Methode splice verwendet werden.
pop: löscht das letzte Element des ursprünglichen Arrays und gibt den Wert des gelöschten Elements zurück; wenn das Array leer ist, wird undefiniert zurückgegeben
var a = [1,2,3,4,5]; var b = a.pop(); //a:[1,2,3,4] b:5
push: Parameter am Ende des ursprünglichen Arrays hinzufügen und die Länge des Arrays zurückgeben
var a = [1,2,3,4,5]; var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7
concat: Ein neues Array zurückgeben bestehend aus dem Hinzufügen von Parametern zum ursprünglichen Array
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]
splice(start,deleteCount,val1,val2,...): Löschen Sie deleteCount-Elemente von der Startposition und fügen Sie val1, val2 ein ,... .
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); //同shift a.splice(0,0,-2,-1); var b = a.length; //同unshift var b = a.splice(a.length-1,1); //同pop a.splice(a.length,0,6,7); var b = a.length; //同push
reverse: Kehrt das Array um
var a = [1,2,3,4,5]; var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
sort(orderfunction): Sortiert das Array nach die angegebenen Parameter
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,end): Gibt ein neues Array zurück, das aus Elementen zwischen dem angegebenen Startindex und dem Endindex im ursprünglichen Array
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): Kombinieren Sie die Elemente des Arrays zu einer Zeichenfolge und verwenden Sie dabei ein Trennzeichen als Trennzeichen. Wenn es weggelassen wird, wird das Standardkomma als Trennzeichen verwendet
var a = [1,2,3,4,5]; var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"
Array ist ein internes Objekt, das von JavaScript bereitgestellt wird. Wir können darin Elemente hinzufügen (pushen) und löschen (shift). Wir können die Elemente darin auch durch eine for-Schleife durchlaufen. Können wir also zusätzlich zum Array noch andere Sammlungen in JavaScript haben?
//Array: /*新建:*/var ary = new Array(); 或 var ary = []; /*增加:*/ary.push(value); /*删除:*/delete ary[n]; /*遍历:*/for ( var i=0 ; i < ary.length ; ++i ) ary[i]; //Object: /*新建:*/var obj = new Object(); 或 var obj = {}; /*增加:*/obj[key] = value; (key为string) /*删除:*/delete obj[key]; /*遍历:*/for ( var key in obj ) obj[key];
Aus dem obigen Vergleich können wir erkennen, dass Objekt als Sammlung verwendet werden kann und Sie das Popup verwenden können Fenster zum Erstellen unendlicher Ebenen. Im Webseitenmenü (3) habe ich den von Eric implementierten __MenuCache__ eingeführt, der ebenfalls ein simuliertes Sammlungsobjekt ist.
var keyword = ; for ( var i=0 ; i < ary.length ; ++i ) { if ( ary[i] == keyword ) { // todo } }
Und Um einen Eintrag mit einem angegebenen Schlüssel in Object abzurufen, müssen wir nur Folgendes verwenden:
var key = ''; var value = obj[key]; // todo
Object的这个特性可以用来高效的检索Unique的字符串集合,遍历Array的时间复杂度是O(n),而遍历Object的时间复杂度是O(1)。虽然对于10000次集合的for检索代价也就几十ms,可是如果是1000*1000次检索或更多,使用Object的优势一下就体现出来了。在此之前我做了一个mapping,把100个Unique的字符mapping到1000个字符串数组上,耗时25-30s!后来把for遍历改成了Object模拟的集合的成员引用,同样的数据量mapping,耗时仅1.7-2s!!!
对于集合的遍历效率(从高到低):var value = obj[key]; > for ( ; ; ) > for ( in )。效率最差的就是for( in )了,如果集合过大,尽量不要使用for ( in )遍历。
相关推荐:
Das obige ist der detaillierte Inhalt vonBeispielanalyse einer js-Array-Operation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!