29

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

var array = [1,20,50,60,78,90];
var id = 50;

配列から id を削除し、新しい配列に id の値を持たない新しい配列を返すにはどうすればよいですか?

4

3 に答える 3

46

複雑なソリューションの場合、 method を使用_.reject()して、カスタム ロジックをコールバックに入れることができます。

var removeValue = function(array, id) {
    return _.reject(array, function(item) {
        return item === id; // or some complex logic
    });
};
var array = [1, 20, 50, 60, 78, 90];
var id = 50;
console.log(removeValue(array, id));

単純なケースでは、より便利な方法を使用します_.without()

var array = [1, 20, 50, 60, 78, 90];
var id = 50;
console.log(_.without(array, id));

デモ

于 2013-10-08T08:19:18.363 に答える
14

_filterも機能します。_rejectの反対です。

var array = [1,20,50,60,78,90];
var id = 50;

var result = _.filter(array, function(x) { return x != id });

http://jsfiddle.net/kman007_us/WzaJz/5/

于 2014-06-01T02:49:10.263 に答える
1

アンダースコアの API ではありませんが、spliceを使用できます。

arrayObject.splice(index,howmany,item1,.....,itemX)

あなたの例では:

var index = _.indexOf(array, id);
array.splice(index, 1);
于 2016-06-20T09:45:53.463 に答える