通过jquery中的索引删除数组值

时间:2012-10-04 09:35:43

标签: jquery

数组:

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

我想通过使用索引删除上面的数组值'def'。

5 个答案:

答案 0 :(得分:70)

使用the splice method

ArrayName.splice(indexValueOfArray,1);

这将从1开始从数组中删除indexValueOfArray项。

答案 1 :(得分:17)

您的示例代码错误,将抛出SyntaxError。您似乎已经混淆了创建对象Object的语法与创建Array

正确的语法是:var arr = [ "abc", "def", "ghi" ];

要从数组中删除项目,请根据其值使用splice方法:

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

要通过索引删除它,只需直接引用它:

arr.splice(1, 1);

答案 2 :(得分:11)

您的语法不正确,您应该指定哈希:

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”的第一个索引,然后使用splice将其从数组中删除。 但是我会推荐使用.filter(),因为它可以让你获得更多控制权:

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

这将创建一个只包含非“def”元素的新数组。

重要的是要注意arr.filter()将返回一个新数组,而arr.splice将修改原始数组并返回删除的元素。这些都很有用,取决于你想对这些项目做什么。

答案 3 :(得分:2)

delete arr[1]

试试这个,如果你有像var arr =["","",""]

这样的数组,它应该可以工作

答案 4 :(得分:1)

  1. 在数组中查找元素并获取其位置
  2. 使用职位
  3. 删除

    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);
                }
    

    inArray() - 帮助您找到位置 splice() - 帮助您删除该位置的元素

    感谢。