Angular2 - 过滤器对象的数组,其中属性不在值中

时间:2018-04-18 14:13:08

标签: angular typescript

我在根据一组值过滤ojbects数组时遇到了一些麻烦:

这是要过滤的数组:

var items: Product[] = ... values

现在我声明一个我想要选择的产品数组:

var sel: Product[] = ... values

我必须应用过滤器的属性是 idProduct ,我该怎么办?

我需要这样的东西:

var query = items.filter(x => x.idProduct IN(来自sel数组的idProduct列表)

我该怎么做?

感谢支持

2 个答案:

答案 0 :(得分:2)

您可以使用some查找具有相同产品ID的sel中的任何产品

items.filter(i=> sel.some(s=> s.idProduct == i.idProduct)); 

答案 1 :(得分:1)

根据其他答案,但使用Array.prototype.includes()

let query = items.filter(x => sel.map(y => y.idProduct).includes(x.idProduct));