我有下面的过滤器数组,其中包含以下三个值:
['serviceCode1', 'serviceCode2', 'serviceCode3']
我有一个包含大约78条记录的另一个数组,我试图根据上面列出的过滤器过滤它。
this.mainDataSet = this.mainDataSet.filter((data) => {
return this.filters.forEach(x => data.serviceCode.includes(x.code!))
});
然而,响应总是0,即使mainDataSet包括filters数组中列出的值,有人能解释一下我在这里做错了什么吗?
2条答案
按热度按时间fcg9iug31#
forEach不返回值,它在原地对数组进行操作,所以你只是在过滤器数组上工作,而不是在数据集上,因为没有任何东西从你的内部函数返回。
我将使用
includes
方法将数据集与过滤器列表进行匹配。可读性更强。fhity93d2#
Array.forEach()
用于迭代元素,但它不会返回任何值。您应该使用
Array.find()
,以便根据另一个数组过滤数组中的元素。