Отфильтровать массив по объекту?
Коллеги доброго времени суток, подскажите как отфильтровать массив по объекту:
<code lang="javascript"> const arr = [ { "id" : 1, "city" : "Москва", "title" : "ООО Мавзолей" "type" : ["носки", "аромат"] }, { "id" : 2, "city" : "Татарск", "title" : "ООО Татарск Продакс" "type" : ["коровы", "ЖБ плиты"] } ]; const filter = { city: `Татарск`, title: ``, type: `коровы` }; </code> соответственно нужно фильтровать arr по значениям filter. Заранее благодарю |
Роман Андреевич,
const arr = [ { "id" : 1, "city" : "Москва", "title" : "ООО Мавзолей", "type" : ["носки", "аромат"] }, { "id" : 2, "city" : "Татарск", "title" : "ООО Татарск Продакс", "type" : ["коровы", "ЖБ плиты"] } ]; const filter = {id : 2, city: `Татарск`, title: ``, type: `коровы` }; const rezult = arr.filter(el => Object.keys(filter).every(key => {{ const str = filter[key]; if(!str) return true; const obj = el[key]; if(!obj) return false; if(Array.isArray(obj)) return obj.some(a => a.includes(str)); else return obj.toString().includes(str); }})) console.log(rezult) |
рони, спасибо, помогло
|
Часовой пояс GMT +3, время: 09:11. |