请告诉我如何使用过滤器一次捕获多个值,只要我们要查找的值是动态的
var tags = ['cat', 'animal'] //this will be a dynamic value the user will enter
var list = [
{
tags: 'cat, kitty, big cat'
},
{
tags: 'pet, animal, big cat'
},
{
tags: 'tiger, kitty, big cat'
},
{
tags: 'cat, kitty, animal, big cat'
}];
list.filter(item => {
return item.tags.includes(/* need to filter only those where there are both values from the array tags */)
})
答案 0 :(得分:0)
如果要和输入标签;即只显示与 all 标记匹配的列表项,然后使用
list.filter(item => tags.every(tag => item.tags.includes(tag));
另一方面,如果要或输入标签;即显示与标签的 any 匹配的列表项,然后使用
list.filter(item => tags.some(tag => item.tags.includes(tag));