我有此数组:合并两个数组并返回项目,是不是在第一
categories = ['Cat A', 'Cat B', 'Cat C', 'Cat D']
这阵:
selectedCategories = ['Cat A', 'Cat D']
我想从这两产生一个新的数组:
categoriesAvailableToAdd = ['Cat B', 'Cat C']
是否有一些整洁的下划线/ lo-dash技巧来做到这一点?找不到任何。必须是一项常见任务?
我有此数组:合并两个数组并返回项目,是不是在第一
categories = ['Cat A', 'Cat B', 'Cat C', 'Cat D']
这阵:
selectedCategories = ['Cat A', 'Cat D']
我想从这两产生一个新的数组:
categoriesAvailableToAdd = ['Cat B', 'Cat C']
是否有一些整洁的下划线/ lo-dash技巧来做到这一点?找不到任何。必须是一项常见任务?
可以使用_.difference
功能,这样
console.log(_.difference(categories, selectedCategories));
# [ 'Cat B', 'Cat C' ]
_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
// → [1, 3, 4]
您可以filter与array 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']