我使用JavaScript数组过滤器通过关键字过滤一些对象数组。初始,我有对象的数组:使用多个值过滤数组
let works = [
{ title: ' work 1', medium: 'tax1' },
{ title: ' work 2', medium: 'tax2' },
{ title: ' work 3', medium: 'tax3' },
{ title: ' work 4', medium: 'tax2' },
{ title: ' work 5', medium: 'tax1' }
]
并且通过以这样的方式“中”可过滤的数组:
mediumFilter(taxonomy) {
return works.filter(item => {
return (
item.medium.indexOf(taxonomy) > -1
);
});
},
当我通过分类变量到mediumFilter( ),在这种情况下'tax1'左右 - 我得到一个数组,其中包含包含该特定介质的项目。
这是最初的 - 现在我的项目越来越复杂,我发现自己在挣扎。我的新数组包含一个嵌套数组,它们是要在过滤中匹配的值。
let works = [
{ title: ' work 1', medium: [ 'tax1', 'tax3' ] },
{ title: ' work 2', medium: [ 'tax1' ] },
{ title: ' work 3', medium: [ 'tax3' ] },
{ title: ' work 4', medium: [ 'tax2', 'tax1' ] },
{ title: ' work 5', medium: [ 'tax1' ] }
]
请注意介质是如何保持多个字符串的数组。
我正在寻找一些关于如何解决这个问题的帮助。我需要我的函数来返回匹配变量im传递的项目。由于一些作品可能有多种媒介,我需要能够通过多种价值进行筛选。如果媒体阵列具有多个值,则只需匹配一个值。
谢谢!
btw即时通讯使用与问题无关的vue,但我的示例的语法可能并不准确。
这个'mediumFilter(['tax3','tax2'])''应该是什么结果? – RomanPerekhrest
嗨 - 用户只能在这个阶段过滤一个类别,所以传递给函数的变量将永远是单个字符串!仍然这是非常重要的考虑 – mmarquez