Фильтрация нескольких опций из массива по значениям другого массива
Как отфильтровать сразу по всем цветам skinColor?
skinColorValue: {
skinColor: string,
id: number
} = [{skinColor:"blue",id: 1}, {skinColor:"green", id:21}, {skinColor:"fair",id: 554}]
persons = [{
gender: "male"
height: 172
id: "cGVvcGxlOjE="
mass: 77
name: "Luke Skywalker"
skinColor: "fair"
}, {
gender: "n/a"
height: 167
id: "cGVvcGxlOjI="
mass: 75
name: "C-3PO"
skinColor: "gold"
}, {
gender: "male"
height: 202
id: "cGVvcGxlOjQ="
mass: 136
name: "Darth Vader"
skinColor: "white"
}
persons = persons.filter((el) => {
return (
el.skinColor === this.skinColorValue[0].skinColor ||
el.skinColor === this.skinColorValue[1].skinColor ||
el.skinColor === this.skinColorValue[2].skinColor
);
});
Выполняется только с тремя фильтрами, а их может быть 1 или 2
Источник: Stack Overflow на русском