我有一个过滤数组的输入框,只显示那些匹配项。
let songs = [
{name: 'Let It Be', artist: 'The Beatles},
{name: 'Lady Madonna', artist: 'The Beatles },
{name: 'Mama Mia', artist: 'The Beatles}
];
在下面的示例中,它将仅按名称进行匹配。
let value = 'name';
let q = 'Let it be' // value entered in input box;
let songFilter = songs.filter(function(song) {
return song[value].toString().toLowerCase().indexOf(q) != -1; // returns true or false
});
然后,当我在输入框中输入 Let It Be
时,它将只显示返回 'Let It Be'
。但是,我想按两首歌曲进行过滤,所以如果我输入 Let It Be, Lady Madonna
,我希望它返回两首歌曲。
我采用了很多方法,但无法弄清楚如何让它发挥作用。如果这样更容易解决,我也可以使用 lodash
。
最佳答案
let songFilter = songs.filter(function(song) {
['let it be', 'lady madonna'].indexOf(song[value].toString().toLowerCase()) > -1
});
关于javascript - 在多个条件下过滤 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43204972/