ホームページ  >  記事  >  ウェブフロントエンド  >  jsで配列要素を削除し、配列をクリアする簡単な方法

jsで配列要素を削除し、配列をクリアする簡単な方法

高洛峰
高洛峰オリジナル
2017-01-14 11:25:572207ブラウズ

1. 配列をクリアします

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

2. 配列要素を削除します

var arr=['a','b','c'];

'b' を削除したい場合は、次の 2 つの方法があります:

1、削除方法: delete arr[1]


この方法では、配列の長さは変更されません。このとき、arr[1] は次のようになります。未定義ですが、インデックスも変更されないという利点もあります。この時点で、配列要素を走査したい場合は、

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

この走査メソッドは未定義の要素をスキップします。 IE4.o 以降でサポートされています

2、配列オブジェクトの splice メソッド :arr.splice(1,1);

このように、配列の長さはそれに応じて変化しますが、元の配列のインデックスもそれに応じて変化します

最初splice パラメーターの 1 は、削除の開始インデックス (0 から数えます) です。これが配列の 2 番目の要素です

2 番目の 1 は、削除された要素の数です。ここでは 1 つの要素 ('b') のみが削除されます。

現時点では、削除された要素は配列に保持されないため、配列要素は配列を走査する通常の方法で走査できます

* この方法は IE5.5 以降でのみサポートされます

splice メソッドでは、配列要素を削除しながら新しい配列要素を追加することもできることに注意してください

たとえば、arr.splice(1,1,'d','e') では、2 つの要素 d と e がarray arr

結果の配列は arr:'a','d','e' ,'c' になります

さらに、JavaScript は配列の長さプロパティを設定することで配列を切り捨てますが、これが配列を短くする唯一の方法です。配列の長さ。

delete 演算子を使用して配列内の要素を削除すると、その要素は未定義になりますが、配列の長さのプロパティは変わりません。要素を削除するには 2 つの方法があり、配列の長さも変わります。

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

例 2、

/*
  * 方法: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);

IE5 以前のバージョンでは、JavaScript の Array (配列) オブジェクトには、配列要素を削除する既製のメソッドが提供されていません。 IE5.5以降のバージョンでは、spliceメソッドはありますが、特定の項目(または複数の項目)を削除するのではなく、特定の項目(または複数の項目)の値をクリアするだけです。つまり、項目はまだ残っています。が存在する場合、配列の長さは変更されていません。

実際、配列に delete メソッドを自分で追加することもできます (これは、実際に配列メンバーから配列の項目を削除することを指すことに注意してください)。おそらく、ループを使用して配列を再割り当てすることを考えるでしょう。これは確かに可能ですが、非常に非効率的です。

以下では、Array オブジェクトのスライスとコンキャットの 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);

上記のコードは、基本的な要件を達成するために Array オブジェクトの 2 つのメソッドのみを使用していますが、これは良いことです。

js で配列要素を削除して配列をクリアする上記の簡単な方法 (必ずお読みください) は、エディターによって共有されたすべての内容です。参考にしていただければ幸いです。また、PHP 中国語 Web サイトにもっと注目していただければ幸いです。 。

配列要素を削除し、配列をクリアするためのその他の js の簡単な方法については、PHP 中国語 Web サイトの関連記事に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。