可能是重复问题:
从JavaScript数组中删除特定元素?
我有一个数组,想要从中删除一个值。
考虑这个数组
[ 'utils': [ 'util1', 'util2' ] ]
现在我只想删除util2
。 我该怎么做呢? 我尝试使用delete
,但它不起作用。
有人可以帮帮我吗?
可能是重复问题:
从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的回答似乎比我的更符合惯用语。考虑使用他的回答。
indexOf()
并从其返回的索引处进行剪切。 - techfoobarArray.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"]用于访问对象的"属性",而不是关联数组中的元素
减少长度
obj["utils"].length --;