数组:
var arr = {'abc','def','ghi'};
我想通过使用索引删除上面的数组值'def'。
答案 0 :(得分:70)
答案 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)
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() - 帮助您删除该位置的元素
感谢。