Javascript 从关联数组中删除值
可能重复:Javascript 从关联数组中删除值,javascript,arrays,object,Javascript,Arrays,Object,可能重复: 我有一个数组,我想从中删除一个值 将其视为一个数组 ['utils':['util1','util2']] 现在我只想删除util2。我如何做到这一点,我尝试使用delete,但没有成功 有人能帮我吗?使用以下方法: 如果不知道数组元素的实际位置,则需要迭代数组并从那里拼接元素。请尝试以下方法: for (var i = object.utils.length; i--;) { var index = object.utils.indexOf('util2');
我有一个数组,我想从中删除一个值 将其视为一个数组
['utils':['util1','util2']]
现在我只想删除util2
。我如何做到这一点,我尝试使用delete
,但没有成功
有人能帮我吗?使用以下方法:
如果不知道数组元素的实际位置,则需要迭代数组并从那里拼接元素。请尝试以下方法:
for (var i = object.utils.length; i--;) {
var index = object.utils.indexOf('util2');
if (index === -1) break;
if (i === index) {
object.utils.splice(i, 1); break;
}
}
更新:techfoobar的答案似乎比我的更地道。请考虑使用HIS。 < P>我认为JavaScript中没有所谓的关联数组。它实际上是一个物体
[ 'utils': [ 'util1', 'util2' ] ]
var obj = { 'utils': [ 'util1', 'util2' ] }
对于这一行,我认为它不会编译。你应该写这个
var obj = { 'utils': [ 'util1', 'util2' ] }
因此,要删除数组(内部数组)中的元素“util2”,有两种方法
obj["utils"].length --;
您可以在与
Array.indexOf()
的组合中使用Array.splice()
var toDelete = object.utils.indexOf('util1');
if(toDelete != -1) {
object.utils.splice(toDelete, 1);
}
如果这是对象文字,则周围的方括号应该是括号。我看不到关联数组。+1,您就快到了:它是object.utils.splice(1,1)
。您必须告诉它要删除多少(第二个1
)。第一个1
只是告诉它在什么索引处做某事。编辑:是的,就是这样。:-)如果对象是这样定义的:var object={'utils':['util2','util1']}
?Darin想说,如果元素的顺序不同怎么办。这个问题的答案都是一样的。是的,这就是我的意思。此解决方案仅在某些非常特殊的情况下有效。@DarinDimitrov然后您将执行.utils.splice(0)
var toDelete = object.utils.indexOf('util1');
if(toDelete != -1) {
object.utils.splice(toDelete, 1);
}