在Javascript / Lodash中过滤对象数组中的多个字段

失落9123193

我有以下数组:

人物清单

[ {id:1, name:"Brian", status:"active"}, {id:2, name:"Mary", status:"active"},
  {id:3, name:"John", status:"pending"}, {id:4, name:"Steph", status:"pending"},
 {id:5, name:"Peter", status:"inactive"}
]

statusList

[ 'active', 'pending']

我只想将对象数组过滤为statusList,所以我做了以下工作:

var filteredPeople  =PeopleList.map(person => {
  for (var i=0; i<=statusList.length; i++){
    if(statusList[i] == person.active)
        return {...person};
  }
});

当人员对象正确返回时,对于未通过条件语句的对象,我也会得到“未定义”。

所以我的结果是:

   [object, object, object,object, undefined ] 

我如何做到这一点,以便如果不通过条件,则将该对象从列表中删除?

内纳德·弗拉卡(Nenad Vracar)

而不是map您应该filter用于过滤数组。您也可以使用includes

var data = [ {id:1, name:"Brian", status:"active"}, {id:2, name:"Mary", status:"active"},
  {id:3, name:"John", status:"pending"}, {id:4, name:"Steph", status:"pending"},
 {id:5, name:"Peter", status:"inactive"}
]
var statusList = [ 'active', 'pending']

var result = data.filter(e => statusList.includes(e.status))
console.log(result)

在ES5和更低版本中,您可以使用indexOf代替includes

var data = [ {id:1, name:"Brian", status:"active"}, {id:2, name:"Mary", status:"active"},
  {id:3, name:"John", status:"pending"}, {id:4, name:"Steph", status:"pending"},
 {id:5, name:"Peter", status:"inactive"}
]
var statusList = [ 'active', 'pending']

var result = data.filter(function(e) {
  return statusList.indexOf(e.status) != -1
})
console.log(result)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用Javascript / Lodash更新对象数组中的单个对象字段

Javascript lodash 基于值过滤数组中的对象

Javascript将多个字段存储在数组中

过滤对象javascript中的数组

在 Javascript 中过滤对象数组

Javascript-在es6中具有多个字段的对象数组中计算重复项

在JavaScript中的多个字段上排序

过滤Javascript中对象内部的对象数组

javascript过滤数组内部对象中的数组

根据javascript中字段的值过滤对象

避免多个映射和过滤器来压缩和过滤javascript中的对象数组

如何从JavaScript中的多个对象过滤

Javascript过滤数组中的对象并返回数组中对象的属性

Javascript(angularJS):按多个字段过滤

使用Javascript仅从多维数组中的多个字符串中返回匹配的对象

根据javascript中的键名过滤对象数组

如何过滤javascript中的对象数组?

Javascript:如何过滤数组中的对象

如何在Javascript中过滤对象数组

在javascript中过滤和求和对象数组

数组中的Javascript过滤器对象

在javascript中过滤不同/映射对象数组?

过滤对象数组 JavaScript 中的相似名称

如何根据javascript中的多个字段对数组进行排序

如何使用JavaScript从传入对象的数组中获取每个字段数据

对象数组中的Javascript / Lodash深度比较对象

Javascript:更新对象数组中的字段

如何使用javascript过滤对象数组中的对象数组?

如何过滤对象数组中的对象数组?javascript