50

配列:

var arr = {'abc','def','ghi'};

インデックスを使用して、上記の配列値'def'を削除したいと思います。

4

5 に答える 5

91

スプライス方式を使用します。

ArrayName.splice(indexValueOfArray,1);

1これにより、で始まる配列からアイテムが削除されindexValueOfArrayます。

于 2012-10-04T09:42:57.713 に答える
26

サンプルコードが間違っているため、SyntaxErrorがスローされます。オブジェクトObjectを作成する構文とを作成する構文を混同しているようですArray

正しい構文は次のとおりです。var arr = [ "abc", "def", "ghi" ];

値に基づいて配列からアイテムを削除するには、spliceメソッドを使用します。

arr.splice(arr.indexOf("def"), 1);

インデックスで削除するには、直接参照してください。

arr.splice(1, 1);
于 2012-10-04T09:36:52.170 に答える
13

構文が正しくないため、ハッシュを指定する必要があります。

hash = {abc: true, def: true, ghi: true};

または配列:

arr = ['abc','def','ghi'];

アイテムをnullに設定するだけで、ハッシュからアイテムを効果的に削除できます。

hash['def'] = null;
hash.def = null;

またはそれを完全に削除します:

delete hash.def;

配列からアイテムを削除するには、各アイテムを繰り返し処理して、必要なアイテムを見つける必要があります(重複している可能性があります)。配列検索とスプライシングの方法を使用できます。

arr.splice(arr.indexOf("def"), 1);

これにより、「def」の最初のインデックスが検索され、スプライスを使用して配列から削除されます。ただし、より詳細に制御できるため、.filter()をお勧めします。

arr.filter(function(item) { return item !== 'def'; });

これにより、「def」ではない要素のみを含む新しい配列が作成されます。

arr.filter()は新しい配列を返し、arr.spliceは元の配列を変更して、削除された要素を返すことに注意してください。アイテムで何をしたいかによっては、これらは両方とも便利です。

于 2012-10-04T09:45:00.887 に答える
2
delete arr[1]

これを試してみてください。varのような配列がある場合は機能するはずです。arr =["","",""]

于 2012-10-04T09:39:23.340 に答える
2
  1. 配列内の要素を見つけて、その位置を取得します
  2. 位置を使用して削除します

var array = new Array();
  
array.push('123');
array.push('456');
array.push('789');
                 
var _searchedIndex = $.inArray('456',array);
alert(_searchedIndex );
if(_searchedIndex >= 0){
  array.splice(_searchedIndex,1);
  alert(array );
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>

  • inArray()-位置を見つけるのに役立ちます。
  • splice()-その位置にある要素を削除するのに役立ちます。
于 2012-10-04T10:00:09.093 に答える