一次过滤多个值

时间:2019-10-22 16:29:28

标签: javascript

请告诉我如何使用过滤器一次捕获多个值,只要我们要查找的值是动态的

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 */)
})

1 个答案:

答案 0 :(得分:0)

如果要输入标签;即只显示与 all 标记匹配的列表项,然后使用

list.filter(item => tags.every(tag => item.tags.includes(tag));

另一方面,如果要输入标签;即显示与标签的 any 匹配的列表项,然后使用

list.filter(item => tags.some(tag => item.tags.includes(tag));