var auto = [{
marka: "BMW",
model: "4k",
cuzov: "A",
},
{
marka: "Merc",
model: "4k",
cuzov: "B",
},
{
marka: "Audi",
model: "3k",
cuzov: "C",
},
{
marka: "Toyota",
model: "1k",
cuzov: "D",
},
{
marka: "Lexus",
model: "2k",
cuzov: "E",
},
{
marka: "Rang",
model: "3k",
cuzov: "F",
},
{
marka: "BMW",
model: "4k",
cuzov: "G",
},
{
marka: "BMW",
model: "2k",
cuzov: "Y",
},
{
marka: "Audi",
model: "3k",
cuzov: "U",
}
]
var marka = ["Audi", "Rang", "Merc"];
var model = ["4k", "2k", "3k"];
var rez1 = auto.filter(x => (marka.includes(x.marka) && model.includes(x.model) &&
cuzov.includes(x.cuzov)));
console.log(rez1);
Фильтрую массив в соответствии с параметрами которые задал условно "Пользователь".
Такой вопрос. А что если "пользователь", скажем решит очистить массив model. Ну то есть выберет так, что должны показываться все модели. Тогда фильтр уже не будет работать. Что делать?
var rez1 = auto.filter(x => (
marka.includes(x.marka) &&
(model.length == 0 || model.includes(x.model)) &&
cuzov.includes(x.cuzov)
));
Если массив model "очищен", то есть пуст, его длина равна нулю. В этом случае x.model не играет роли, и проверка модели (вторая строчка в условиях) будет возвращать true.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей