我有这个数组:
categories = ['Cat A', 'Cat B', 'Cat C', 'Cat D']
这个数组:
selectedCategories = ['Cat A', 'Cat D']
我想从这两个产生一个新数组:
categoriesAvailableToAdd = ['Cat B', 'Cat C']
是否有一些整齐的下划线/低速划线技巧可以做到这一点?找不到任何。必须是一项共同的任务吗?
答案 0 :(得分:1)
您可以使用_.difference
功能,就像这样
console.log(_.difference(categories, selectedCategories));
# [ 'Cat B', 'Cat C' ]
答案 1 :(得分:0)
_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
// → [1, 3, 4]
答案 2 :(得分:0)
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']