我必须过滤一个对象数组以获取基于另一个数组的某些值并且也不同
数据
var value:any[]
var inventory = [
{id: 1, quantity: 2, GroupId: 1},
{id: 2, quantity: 0, GroupId: 2},
{id: 1, quantity: 2, GroupId: 1}
];
//data from db
value = [1,2]
我的代码
var data = this.inventory .filter(x => x.GroupId == this.value );
无法获取过滤后的数据,但返回空数组。提前致谢
最佳答案
在您的代码中,您将 GroupId
与数组进行比较。您应该检查数组是否包含 GroupId
。
方法如下:
var data = this.inventory.filter(x => value.includes(x.GroupId));
为了获得更好的支持,您可以替换 Array.prototype.includes与 Array.prototype.indexOf :
var data = this.inventory.filter(x => value.indexOf(x.GroupId) !== -1);
关于javascript - typescript 按数组过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401341/