var arr=['a','b','c'];
「b」を削除するには、次の 2 つの方法があります:
1.delete メソッド: delete arr[1]
この方法このとき、arr[1] は未定義になりますが、この時点で配列要素を走査したい場合は、この走査を使用できるという利点もあります。未定義の要素をスキップするメソッド
* このメソッドは IE4.o 以降でサポートされています
2. 配列オブジェクトの結合メソッド: arr.splice(1,1);
このように、配列の長さはそれに応じて変更されますが、元の配列インデックスもそれに応じて変更されます。
splice パラメーターの最初の 1 は、削除の開始インデックス (0 から) です。ここでは、配列の 2 番目の要素です
2 番目の 1 は、削除する要素の数。ここでは要素、つまり 'b' のみを削除します。
この時点では、削除された要素は保持されないため、for などの配列を走査する通常の方法で配列要素を走査できます。配列内で
* このメソッドは IE5.5 以降でのみサポートされます
言及する価値があるのは、splice メソッドは配列要素を削除する一方で、新しい配列要素を追加することもできるということです。たとえば、arr.splice(1, 1,'d','e')、2つの要素 d と e が配列に追加されます
結果の配列は arr:'a','d','e','c' になります
JavaScript は切り詰めます。配列の length プロパティを設定することは、配列内の要素を削除するために delete 演算子を使用する唯一の方法です。要素は未定義になります。配列は変更されません。要素の削除と配列の長さの変更の 2 つのメソッドも使用されます。IE5 以前では、JavaScript の Array オブジェクトには配列を削除するための既製のメソッドが用意されていません。要素。 IE5.5以降のバージョンでは、spliceメソッドはありますが、特定の項目(または複数の項目)を削除するのではなく、特定の項目(または複数の項目)の値をクリアするだけです。つまり、項目はまだ残っています。が存在する場合、配列の長さは変更されていません。
実際、配列に delete メソッドを自分で追加することもできます (これは実際に配列メンバーから配列の項目を削除することを指すことに注意してください)。おそらく、ループを使用して配列を再割り当てすることを考えるでしょう。これは確かに可能ですが、非常に非効率的です。 以下では、Array オブジェクトのスライスとコンキャットの 2 つのメソッドを使用して、配列の削除をカスタマイズする方法を紹介します。
具体的なコードは次のとおりです。内部のコメントに注意してください。
for(index in arr) { document.write('arr['+index+']='+arr[index]); }
このように、Array オブジェクトの 2 つのメソッドのみを使用して要件を達成します。
配列を削除するいくつかの方法の詳細な js の概要については、PHP 中国語 Web サイトの関連記事に注目してください。