具有es6条件数组的Javascript过滤器

时间:2019-03-03 11:06:34

标签: javascript arrays function object ecmascript-6

我正在尝试根据条件数组进行过滤

let myArr = [{id:1, performed:1},{id:12, performed:1},{id:34, performed:13}]
let conditon_id = [ 12,34,34] //these values are dynamic
通过过滤具有myArrperformed=1的所有id项在conditon_id数组中的

。所以我尝试了

myArr.filter(item => item.performed === 1 && //now I am stuck  )

我坚持添加检查器,确认该项目的ID为12或34。值12和34不断变化。我该如何执行

我也检查了This questionThis solution,但都没有解决条件数组和附加条件的问题。

我该如何实现?

3 个答案:

答案 0 :(得分:3)

只需添加includes

myArr.filter(item => item.performed ===1 && condition_id.includes(item.id));

答案 1 :(得分:0)

这正在工作

let myArr = [{"id":1, "performed":1},{"id":12, "performed":1},{"id":34, "performed":13}]
let conditon_id = [ 12,34,34];

let filtered=myArr.filter(value => {
if(value.performed==1 && conditon_id.includes(value.id)) {
  return value;
  }
})

console.log(filtered)

答案 2 :(得分:0)

据我了解,您需要使用condition_id数组作为ID过滤myArr。

那你就可以写

myArr.filter(item=>item.performed === 1 && conditon_id.indexOf(item.id) !== -1)