0

私はこのような配列を持っています

var curChanges = [
                   {id:1, isChecked:true},
                   {id:2, isChecked:false},
                   {id:3, isChecked:true}
                 ];

ここで、{id:2, isChecked:false} という 2 番目の配列を動的に削除したい場合、どうすればよいですか? ここで id は一意です。

前もって感謝します。

4

2 に答える 2

2

まず、構文エラーがあります。オブジェクト プロパティの値は:、 ではなく で設定され=ます。

var curChanges = [
    {
        id: 1,
        isChecked: true
    },
    // etc...
];

配列内の要素の順序が固定されていないと仮定すると、目的を達成する最も簡単な方法は、ES5Array.prototype.filterメソッドを使用することです。

curChanges.filter(function (elem) {
    return elem.id !== 2;
});

フィルター関数から戻るtrueと、要素は配列に残ります。を返すfalseと削除されます。

于 2013-03-28T11:16:45.320 に答える
0

まず、無効な配列です。すべきで:はない=

したがって、次のようになります。

var curChanges = [ {id:1, isChecked:true}, {id:2, isChecked:false}, {id:3, isChecked:true}];

フィルターを使用して、ID に基づいて削除します。

curChanges.filter(function(i) { return i.id!=2;})

または、2 番目の要素を直接削除するには:

curChanges.splice(1,1);
于 2013-03-28T11:16:33.207 に答える