Heim > Web-Frontend > js-Tutorial > Eine einfache Möglichkeit, Array-Elemente zu löschen und das Array in js zu löschen

Eine einfache Möglichkeit, Array-Elemente zu löschen und das Array in js zu löschen

高洛峰
Freigeben: 2017-01-14 11:25:57
Original
2238 Leute haben es durchsucht

1. Array löschen

var ary = [1,2,3,4];
ary.splice(0,ary.length);//清空数组
console.log(ary); // 输出 [],空数组,即被清空了
Nach dem Login kopieren

2. Array-Elemente löschen

var ary = [1,2,3,4];
ary.splice(0,1);
或 ary.splice($.inArray(2, ary), 1); 其中$.inArray(2, ary)用来查找某元素在数组中的索引位置。
Nach dem Login kopieren

3 in js

var arr=['a','b','c'];
Um das 'b' zu löschen, gibt es zwei Methoden:

1, Löschmethode :delete arr[1]

Auf diese Weise bleibt die Länge des Arrays unverändert. Zu diesem Zeitpunkt wird arr[1] undefiniert, hat aber auch den Vorteil, dass der Index des ursprünglichen Arrays unverändert bleibt . Zu diesem Zeitpunkt können Sie die Array-Elemente nur mit

for(index in arr)
{
 document.write('arr['+index+']='+arr[index]);
}
Nach dem Login kopieren

durchlaufen, um undefinierte Elemente zu überspringen
* Diese Methode wird von IE4.o und höher unterstützt

2, Array-Objekt-Spleißmethode: arr.splice(1,1);

Auf diese Weise ändert sich die Array-Länge entsprechend, aber auch der ursprüngliche Array-Index ändert sich entsprechend >Die erste 1 im Spleißparameter wird gelöscht. Der Startindex (berechnet von 0), hier ist das zweite Element des Arrays

Die zweite 1 ist die Anzahl der gelöschten Elemente, hier wird nur ein Element gelöscht , das heißt 'b';

Zu diesem Zeitpunkt können Sie die Array-Elemente auf die normale Weise des Array-Traversierens durchlaufen, z. B. für, da die gelöschten Elemente nicht im

< beibehalten werden 🎜>Array

* Diese Methode ist nach IE5.5. Unterstützt nur

Es ist erwähnenswert, dass die Splice-Methode zwar Array-Elemente löscht, aber auch neue Array-Elemente hinzufügen kann

Zum Beispiel werden arr.splice(1,1,'d','e '), d und e zum Array arr hinzugefügt

Das resultierende Array wird zu arr:'a','d' ,'e','c' 

Darüber hinaus kürzt JavaScript ein Array, indem es seine Längeneigenschaft festlegt, was die einzige Möglichkeit ist, die Länge eines Arrays zu verkürzen.

Wenn Sie den Löschoperator verwenden, um ein Element im Array zu löschen, ändert sich die Längeneigenschaft des Arrays nicht, obwohl dieses Element undefiniert wird. Es gibt zwei Methoden zum Löschen von Elementen und zum Ändern der Länge des Arrays.


/*
  * 方法:Array.remove(dx)
  * 功能:删除数组元素.
  * 参数:dx删除元素的下标.
  * 返回:在原数组上修改数组
*/
//经常用的是通过遍历,重构数组.
Array.prototype.remove=function(dx)
{
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
 }
 a = [&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;];
 alert("elements: "+a+"nLength: "+a.length);
 a.remove(0); //删除下标为0的元素
 alert("elements: "+a+"nLength: "+a.length);
Nach dem Login kopieren

Beispiel 2,

/*
  * 方法:Array.baoremove(dx)
  * 功能:删除数组元素.
  * 参数:dx删除元素的下标.
  * 返回:在原数组上修改数组.
  */
 //也可以用splice来实现.
 Array.prototype.baoremove = function(dx)
 { // www.jb51.net
if(isNaN(dx)||dx>this.length){return false;}
this.splice(dx,1);
 }
 b = [&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;];
 alert("elements: "+b+"nLength: "+b.length);
 b.baoremove(1); //删除下标为1的元素
 alert("elements: "+b+"nLength: "+b.length);
Nach dem Login kopieren
In IE5 oder niedriger funktioniert das Array-Objekt in JavaScript nicht Stellen Sie eine vorgefertigte Methode zum Löschen von Array-Elementen bereit. In der Version von IE5.5+ gibt es zwar eine Spleißmethode, diese löscht jedoch nicht ein bestimmtes Element (oder mehrere Elemente), sondern löscht nur den Wert eines bestimmten Elements (oder mehrerer Elemente), was bedeutet, dass das Element noch vorhanden ist existiert, hat sich die Länge des Arrays nicht geändert.

Tatsächlich können Sie dem Array selbst eine Löschmethode hinzufügen (beachten Sie, dass sich dies auf das tatsächliche Entfernen eines Elements des Arrays aus den Array-Mitgliedern bezieht). Vielleicht denken Sie darüber nach, das Array mithilfe einer Schleife neu zuzuweisen. Dies ist zwar möglich, aber sehr ineffizient.

Im Folgenden wird vorgestellt, wie Sie die beiden Methoden Slice und Concat des Array-Objekts verwenden, um das Löschen des Arrays anzupassen.

Array.prototype.del=function(n) { //n表示第几项,从0开始算起。
//prototype为对象原型,注意这里为对象增加自定义方法的方法。
 if(n<0) //如果n<0,则不进行任何操作。
return this;
 else
return this.slice(0,n).concat(this.slice(n+1,this.length));
/*
 concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
 这里就是返回this.slice(0,n)/this.slice(n+1,this.length)
 组成的新数组,这中间,刚好少了第n项。
 slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
*/
}
//自己增加的方法
var test=new Array(0,1,2,3,4,5);
test=test.del(3); //从0算起,删除第4项。
alert(test);
Nach dem Login kopieren
Der obige Code verwendet nur die beiden Methoden des Array-Objekts, um die Grundanforderungen zu erfüllen, was gut ist.

Die obige einfache Methode zum Löschen von Array-Elementen und zum Löschen von Arrays in js (muss gelesen werden) ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie ihm mehr Aufmerksamkeit schenken die chinesische PHP-Website.

Weitere einfache js-Methoden zum Löschen von Array-Elementen und zum Löschen von Arrays finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage