从关联数组中删除值
可能重复:
从javascript数组中删除特定的元素?
我有一个数组,我想从中删除一个值。
考虑这是一个数组
[ 'utils': [ 'util1', 'util2' ] ]
现在我只想删除util2
。 我该怎么做,我尝试使用delete
但它没有工作。
谁能帮我?
使用splice
方法:
var object = { 'utils': [ 'util1', 'util2' ] }
object.utils.splice(1, 1);
如果您不知道数组元素的实际位置,则需要遍历数组并从中拼接元素。 尝试以下方法:
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的答案似乎比我更习惯。 考虑用他的代替。
您可以在Array.splice()
组合中使用Array.indexOf()
来获得所需的行为,而不必遍历数组:
var toDelete = object.utils.indexOf('util1');
if(toDelete != -1) {
object.utils.splice(toDelete, 1);
}
我认为在Javascript中没有这种叫做关联数组的东西。 它实际上是一个对象。
[ 'utils': [ 'util1', 'util2' ] ]
对于这一行,我不认为它会编译。 你应该写这个。
var obj = { 'utils': [ 'util1', 'util2' ] }
因此,要移除数组(内部数组)中的元素“util2”,有两种方法。
使用pop()
obj["utils"].pop(); // obj["utils"] is used to access the "property" of the object, not an element in associative array
减少长度
obj["utils"].length --;