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);
}

動作するはずです。null をテストしていないことに注意してください。しかし、これは一般的な考え方です。

于 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 に答える