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

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

Jan 20, 2017 am 11:01 AM

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 = ['1','2','3','4','5'];
 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 = ['1','2','3','4','5'];
 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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

jQueryは要素のパディング/マージンを取得します jQueryは要素のパディング/マージンを取得します Mar 01, 2025 am 08:53 AM

jQueryは要素のパディング/マージンを取得します

jQuery日付が有効かどうかを確認します jQuery日付が有効かどうかを確認します Mar 01, 2025 am 08:51 AM

jQuery日付が有効かどうかを確認します

10 jQuery Accordionsタブ 10 jQuery Accordionsタブ Mar 01, 2025 am 01:34 AM

10 jQuery Accordionsタブ

10 jqueryプラグインをチェックする価値があります 10 jqueryプラグインをチェックする価値があります Mar 01, 2025 am 01:29 AM

10 jqueryプラグインをチェックする価値があります

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

ノードとHTTPコンソールを使用したHTTPデバッグ ノードとHTTPコンソールを使用したHTTPデバッグ Mar 01, 2025 am 01:37 AM

ノードとHTTPコンソールを使用したHTTPデバッグ

jQueryはscrollbarをdivに追加します jQueryはscrollbarをdivに追加します Mar 01, 2025 am 01:30 AM

jQueryはscrollbarをdivに追加します

See all articles