Javascript 如何根据Angular 5中的多个值过滤一个变量?

Javascript 如何根据Angular 5中的多个值过滤一个变量?,javascript,angular,observable,Javascript,Angular,Observable,嗨,我正在使用Angular 5,我想通过一个id对另一个数组中的多个id过滤一个数组的可观察的 onSelectedChange(event) { console.log(event); this.selectedAreas = [11,12,15,19,18,16,22]; return this.readers$ .map(projects => projects.filter(proj => proj.AreaId == 13||15

嗨,我正在使用Angular 5,我想通过一个id对另一个数组中的多个id过滤一个数组的
可观察的

  onSelectedChange(event) {
    console.log(event);
    this.selectedAreas = [11,12,15,19,18,16,22];
    return this.readers$
       .map(projects => projects.filter(proj => proj.AreaId == 13||15||16||18)) // 
       .subscribe(data => {
         console.log(data);
         this.filteredReaders = data;
    })
  }
我想要一些类似于在ids中选择id的内容,您可以使用:

this.selectedAreas.includes(proj.AreaId)
您可以使用:


使用数组和
indexOf

let possibleValues = [13,15,16,18]
projects.filter(proj => possibleValues.indexOf(proj.AreaId)!= -1)

使用数组和
indexOf

let possibleValues = [13,15,16,18]
projects.filter(proj => possibleValues.indexOf(proj.AreaId)!= -1)
使用array.indexOf

let possibleValues = [13,15,16,18]
projects.filter(proj => possibleValues.indexOf(proj.AreaId)!= -1)
使用ES6,您可以使用

this.selectedAreas.includes(proj.AreaId)
使用array.indexOf

let possibleValues = [13,15,16,18]
projects.filter(proj => possibleValues.indexOf(proj.AreaId)!= -1)
使用ES6,您可以使用

this.selectedAreas.includes(proj.AreaId)

你很接近。这应该满足您的要求

return this.readers$

   .map(projects => projects.filter(proj => [13, 15, 16, 18].includes(proj.AreaId))) 
   .subscribe(data => {
     console.log(data);
     this.filteredReaders = data;
})

你很接近。这应该满足您的要求

return this.readers$

   .map(projects => projects.filter(proj => [13, 15, 16, 18].includes(proj.AreaId))) 
   .subscribe(data => {
     console.log(data);
     this.filteredReaders = data;
})

proj=>arrayObject.includes(proj.AreaId)
谢谢,它可以工作
proj=>arrayObject.includes(proj.AreaId)
谢谢,它可以工作