所以,在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()吗?或者我错过了什么?
答案 0 :(得分: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);
}
应该有效。注意我没有测试空值;但这是一般的想法。
答案 1 :(得分:2)
使用过滤器并重新分配
global.menu = global.menu.filter(function(a){ return a.item != "be delete" };