使用Underscore.js从数组中删除项目

29
我有一个这样的数组:
var array = [1,20,50,60,78,90];
var id = 50;

如何从数组中删除id并返回一个新的数组,该新数组不包含id的值?

3个回答

46

如果需要处理复杂的解决方案,您可以使用方法 _.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));

演示


14

1
你可以使用splice,但它不是underscore的API:
arrayObject.splice(index,howmany,item1,.....,itemX)

在您的示例中:
var index = _.indexOf(array, id);
array.splice(index, 1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接