4

可能重复:
JavaScript 数组删除元素

所以,在javascript中,我有这个设置:

global.menu = [{
   name: item1,
   price: price1,
   message: message1
},
{
   name: item2,
   price: price2,
   message: message2
},
{
   name: item3,
   price: price3,
   message: message3
}];

我的问题很简单,但是如何从这个数组中删除一个对象呢?
要选择一个对象,我使用这个命令:

global.HandleMenu = function (b) {
    var c = menu.filter(function (d) {
        return d.name == b;
    });
    c.forEach(function (d) {
        Say(d.message);
    });
};

是的。我可以在 forEach 函数中添加 delete d; 或 d.remove() 吗?还是我错过了什么?

4

2 回答 2

3

假设您要删除的项目的名称在一个名为 的变量中name,例如

for (var i = 0; i = global.menu.length - 1; i--) {
   var current = global.menu[i];
   if (current.name === name) global.menu.splice(i, 1);
}

应该管用。注意我不是在测试空值;但这是一般的想法。

于 2012-07-26T00:07:53.420 回答
2

使用过滤器并重新分配

global.menu = global.menu.filter(function(a){ return a.item != "be delete" };
于 2012-07-26T00:05:16.897 回答