使用Underscore.js从数组中删除Item

时间:2013-10-08 08:12:16

标签: javascript underscore.js

我有一个这样的数组:

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

如何从数组中删除id并返回一个新数组中没有id值的新数组?

3 个答案:

答案 0 :(得分:42)

对于复杂的解决方案,您可以使用方法_.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));

DEMO

答案 1 :(得分: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/

答案 2 :(得分:0)

您可以使用拼接,但它不是下划线的API:

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

在你的例子中:

var index = _.indexOf(array, id);
array.splice(index, 1);