在jquery中按索引删除数组值
数组:在jquery中按索引删除数组值,jquery,Jquery,数组: 我想通过使用索引删除上面的数组值“def”。您的示例代码错误,将抛出语法错误。您似乎混淆了创建对象的语法和创建对象的语法 正确的语法应该是:var-arr=[“abc”、“def”、“ghi”] 要根据项目的值从数组中删除项目,请使用以下方法: 要按索引删除它,只需直接参考它: arr.splice(arr.indexOf("def"), 1); 试试这个,如果您有一个像vararr=[“”,“”,“”]Use这样的数组,它应该可以工作 这将从数组中从indexValueOfArray
我想通过使用索引删除上面的数组值“def”。您的示例代码错误,将抛出语法错误。您似乎混淆了创建对象的语法和创建对象的语法 正确的语法应该是:
var-arr=[“abc”、“def”、“ghi”]代码>
要根据项目的值从数组中删除项目,请使用以下方法:
要按索引删除它,只需直接参考它:
arr.splice(arr.indexOf("def"), 1);
试试这个,如果您有一个像vararr=[“”,“”,“”]
Use这样的数组,它应该可以工作
这将从数组中从indexValueOfArray
开始删除1
项。如果语法不正确,则应指定哈希:
ArrayName.splice(indexValueOfArray,1);
或数组:
hash = {abc: true, def: true, ghi: true};
只需将项目设置为null,即可有效地从哈希中删除项目:
arr = ['abc','def','ghi'];
或者完全移除它:
hash['def'] = null;
hash.def = null;
要从数组中删除一个项,必须遍历每个项并找到所需的项(可能有重复项)。您可以使用数组搜索和拼接方法:
delete hash.def;
这将查找“def”的第一个索引,然后将其从带有拼接的数组中删除。
但是我建议使用.filter(),因为它提供了更多的控制:
arr.splice(arr.indexOf("def"), 1);
这将创建一个仅包含非“def”元素的新数组
需要注意的是,arr.filter()将返回一个新数组,而arr.splice将修改原始数组并返回删除的元素。这两个选项都很有用,具体取决于您想对项目执行的操作
在数组中找到元素并获取其位置
使用位置将其拆下
var数组=新数组();
array.push('123');
array.push('456');
array.push('789');
var\u searchedIndex=$.inArray('456',数组);
警报(搜索索引);
如果(_searchedIndex>=0){
阵列拼接(_searchedIndex,1);
警报(阵列);
}
在没有索引的情况下将其复制到新数组中可以吗OP混淆了创建对象和创建数组的语法。数组的正确语法是:var arr=[“abc”、“def”、“ghi”]代码>这是不好的做法delete
不会从数组中删除该项,但会将其设置为undefined
。看到是字母表,他可能想在其中放一些东西,这纯粹是基于假设这些字符串是实际值而不是占位符,但是一个不错的保存:)将属性设置为null
并不会删除它。您将需要使用delete
。已更新:)在大多数情况下,您不需要使用delete。当您要删除属性时,可以使用delete
。将其设置为null
或undefined
是一种不好的做法,因为这样会消耗比必要时更多的内存。实际上,使用delete
可能被认为是一种不好的做法,因为它比设置为null
或undefined
花费的时间要长得多。但是,这两点都是无效的,因为在大多数情况下,我们讨论的内存和时间完全可以忽略不计。typeof null!=“未定义”
因此没有必要建议将其作为一个可能的选项,只有delete
才是正确的方法!知道.splice
还返回移除对象的数组非常有用。此数组比接受的答案更正确+1指出OP没有使用数组
“大括号”([]
),对于对象
,语法无效-表示在任何情况下都无效。。。作为一个指针,最好在答案中包含delete
,以显示如何从对象中删除。
hash['def'] = null;
hash.def = null;
delete hash.def;
arr.splice(arr.indexOf("def"), 1);
arr.filter(function(item) { return item !== 'def'; });