44

可能重复:
从 javascript 数组中删除特定元素?

我有一个数组,我想从中删除一个值。

将其视为一个数组

[ 'utils': [ 'util1', 'util2' ] ]

现在我只想删除util2. 我该怎么做,我尝试使用delete但它没有用。

谁能帮我?

4

3 回答 3

11

使用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 的回答似乎比我的更惯用。考虑改用他的。

于 2013-01-27T15:25:45.043 回答
5

您可以Array.splice()组合使用Array.indexOf()来获得所需的行为,而无需遍历数组:

var toDelete = object.utils.indexOf('util1');
if(toDelete != -1) {
    object.utils.splice(toDelete, 1);
}
于 2013-01-27T15:38:17.103 回答
0

我认为 Javascript 中没有所谓的关联数组。它实际上是一个对象。

[ 'utils': [ 'util1', 'util2' ] ]

对于这一行,我认为它不会编译。你应该写这个。

var obj = { 'utils': [ 'util1', 'util2' ] }

因此,要删除数组(内部数组)中的元素“util2”,有两种方法。

  1. 使用弹出()

    obj["utils"].pop(); // obj["utils"] is used to access the "property" of the object, not an element in associative array
    
  2. 减少长度

    obj["utils"].length --;
    
于 2013-01-27T15:30:37.967 回答