JavaScript фильтр по всем значениям массива - PullRequest
1 голос
/ 09 марта 2020

Вот мой код и то, что я попробовал:

filterPrestationsByServiceSelected(arrayOfServices) {
    console.log(arrayOfServices); // ['Repassage', 'Couture']
    this.filteredPrestationsByService = this.filteredPrestations.filter(item => item.service.name.includes(arrayOfServices.values()));
},

Я хочу отфильтровать все элементы this.filteredPrestations, где service name содержит значения arrayOfServices.

Anyone есть представление о том, что я могу сделать? Спасибо!

Ответы [ 3 ]

1 голос
/ 09 марта 2020

Remove .values ​​() возвращает итератор, который вам не нужен

filterPrestationsByServiceSelected(arrayOfServices) {
    console.log(arrayOfServices); // ['Repassage', 'Couture']
    this.filteredPrestationsByService = this.filteredPrestations.filter(item => item.service.name.includes(arrayOfServices));
}
0 голосов
/ 09 марта 2020

Вы должны сравнить элементы списка с другим. Таким образом, вам нужно сравнить каждый элемент одной структуры данных с другим. Поскольку вы сравниваете массивы, вы должны сделать так:

filterPrestationsByServiceSelected(arrayOfServices) {
    console.log(arrayOfServices); // ['Repassage', 'Couture']
    this.filteredPrestationsByService = this.filteredPrestations.filter(item => arrayOfServices.find(e => e === item.service.name))
},

Таким образом, вы можете сравнить элементы один за другим.

0 голосов
/ 09 марта 2020

Можете ли вы попробовать этот код. Я думаю, что этот код будет работать.

filterPrestationsByServiceSelected(arrayOfServices) {
    console.log(arrayOfServices); // ['Repassage', 'Couture']
    this.filteredPrestationsByService = this.filteredPrestations.filter(item => arrayOfServices.includes(item.service.name));
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...