2014-09-04 81 views
0

我有此数组:合并两个数组并返回项目,是不是在第一

categories = ['Cat A', 'Cat B', 'Cat C', 'Cat D'] 

这阵:

selectedCategories = ['Cat A', 'Cat D'] 

我想从这两产生一个新的数组:

categoriesAvailableToAdd = ['Cat B', 'Cat C'] 

是否有一些整洁的下划线/ lo-dash技巧来做到这一点?找不到任何。必须是一项常见任务?

回答

1

可以使用_.difference功能,这样

console.log(_.difference(categories, selectedCategories)); 
# [ 'Cat B', 'Cat C' ] 
0

您可以filterarray existence lookup function

Array.prototype.diff = function(a) { 
    return this.filter(function(i) {return a.indexOf(i) < 0;}); 
}; 

你举的例子:

var categories = ['Cat A', 'Cat B', 'Cat C', 'Cat D']; 
var selectedCategories = ['Cat A', 'Cat D']; 
categories.diff(selectedCategories); 
// => ['Cat B', 'Cat C'] 
相关问题