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 回答