我有一个数组,我想从中删除一个值。
将此视为数组
[ 'utils': [ 'util1', 'util2' ] ]
现在我只想删除util2
。我怎么能这样做,我尝试使用delete
,但它没有用。
任何人都可以帮助我吗?
答案 0 :(得分:7)
使用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的回答似乎比我的更为惯用。考虑使用他的代替。
答案 1 :(得分:5)
您可以在Array.splice()
的组合中使用Array.indexOf()
来获得所需的行为,而无需遍历数组:
var toDelete = object.utils.indexOf('util1');
if(toDelete != -1) {
object.utils.splice(toDelete, 1);
}
答案 2 :(得分:0)
我认为在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 --;