我使用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