比如有个 数组`let array = [
{
date: '2016-05-02',
name: 'Ethan',
status: 'success',
total: '81'
},
{
date: '2016-05-04',
name: 'Lynn',
status: 'fail',
tag: '50'
},
{
date: '2016-05-01',
name: 'Kevin',
status: 'success',
tag: '20'
}]`
过滤条件:`let filters = {
name: ['Lynn', 'Kevin'],
status: ['success']
}`
想要的结果是同时满足 name 是 Lynn或者Kevin 同时 status是success的数据
请问怎么写比较有效率 谢谢
补充内容:
研究了一会
最初是这样的 后来感觉太麻烦
this.array.filter( item => {
for(let i = 0; i< this.filters.length; i++) {
console.log(i)
if(item.name === this.filters[i]) {
return true
}
}
return false
}).filter(.....)
现在的做法
array.filter(item => {
return (filters.name.length === 0 ? true : filters.name.indexOf(item.name) !== -1) &&
(filters.tag.length === 0 ? true : filters.tag.indexOf(item.tag) !== -1)
})
js初学, 希望有更好的方法