JS 对象数组根据多个条件过滤

比如有个 数组`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的数据 

请问怎么写比较有效率 谢谢


慕莱坞森
浏览 3354回答 2
2回答

红颜莎娜

let keys = Object.keys(filters)let result = array.filter(item => {  return keys.every(key => filters[key].indexOf(item[key]) !== -1)})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript