Last active
May 9, 2019 20:49
-
-
Save timbillstrom/b537a6c11883eaebd1ec320911dabebf to your computer and use it in GitHub Desktop.
Filter an array of objects using a object of attributes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const DATASTORE = [{"ID":13352463,"Regno":"HZR761","Brand":"Volvo","Model":"V60","Modeldescription":"D4 AWD Ocean Race BE Pro","Yearmodel":2016,"Firstreg":"2015-09","Miles":9334,"PriceSek":"209.900","PriceExtra":"","Bodytype":"Kombi","Fax":"","Color":"Svart","Phone":"0221-771002","Homepage":"http://www.vmfordon.se","Email":"[email protected]","Info":"Svensksåld, Business Edition PRO, Komplett Servicehistorik, En brukare, Möjlighet till 0kr kontant, ABS-bromsar, Airbag förare, Airbag passagerare fram, Avstängningsbar pass-airbag, Airbag sidor, Antisladdsystem, Antispinn, Auto Start/Stop, Cd-stereo, AUX-ingång, USB-ingång, Streaming via bluetooth, City Safety, Dieselvärmare, Elhissar fram och bak, Fjärrstyrt c-lås, Farthållare, Färddator, Gummimattor, Handsfree via Bluetooth, Helskinn, 2-zons klimatanläggning, Lastnät, Multifunktionsratt i läder, Navigation, PDC Fram och bak, Rollo (lastrumsgardin), Rails, Regnsensor, Soltak glas, 17\" Sommarhjul, Sportratt, Sportstolar, Sätesvärme fram, Vinterhjul Friktion, Xenonstrålkastare, Dragkrok kan monteras från 6000kr, Bränsleförbrukning: 0.55l/mil, Kan leasas av företag, OBS Vi tar EJ kort, Betala gärna med Swish eller bankdosa, Läs om olika betalningssätt och ansök om lånelöfte på vår hemsida, Nästa service 2019-08-17 eller vid 11.000mil, Vi byter in alla bilar som är svensksålda, Reservation för fel i annonsen, Du hittar alla våra bilar på www.vmfordon.se, RING ALLTID OCH BOKA TID, KONTORET 0221-771002, JENS 076-0409644","Gearboxtype":"Automatisk","Fueltype":"Diesel","Seller":"VMfordon (Västra Mälardalens Fordon AB)","City":"Köping","Contactid":"","ExklMoms":"1","Added":1557327315,"Environment":"0","Status":"0","Weight":"","Horsepower":189,"ContactName":"","ContactPhone":"","ContactMobile":"","ContactEmail":"","ContactPhoto":"","McEngineType":"","McCc":"","McPower":"139","McHours":"","CampersBeds":"","CampersLength":"","Images":{"Image":[{"URL":"https://pro.bbcdn.io/d0/d0db80fd-9094-47e6-be4b-61d0890fb2d5?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/f5/f563ac61-6d04-413e-995d-87644d2de1bd?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/c8/c8d0b368-f129-4c6f-a7bd-b85c2f9a5a90?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/ff/ff7ada26-ead3-4dda-a465-32d6617f7eb9?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/0a/0a22697c-7c7f-47cf-bb94-90d8cf7b08f8?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/4f/4fd98f4d-40a7-4249-a187-17026e5cd249?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/a5/a52f8295-2322-4f1d-8097-3a55c2dc7beb?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/47/47902bb2-65a4-4bb5-9457-616b27a5f474?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/ec/ec79b79e-f467-4742-ac43-dc4116e7948b?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/3f/3fd287c1-f76e-43e2-abfc-75d4598d3219?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/0d/0d4f5fb6-cc04-4284-bdb3-527a1a1de400?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/4d/4dd0d52b-2af8-4840-9348-6d5b5865a9a5?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/4a/4a396a66-90da-4b1b-a6c8-f782573efcb5?rule=legacy-largest&format=.jpg"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"}]},"Warrantyprogram":"","Inwarrantyprogram":false,"Specs":null,"Description":"","Related":null,"Extras":{"Header":"","Footer":""}},{"ID":13349986,"Regno":"REJ990","Brand":"Volvo","Model":"XC70","Modeldescription":"D4 AWD Classic Sport EU6 181hk","Yearmodel":2016,"Firstreg":"2016-05","Miles":13988,"PriceSek":"229.900","PriceExtra":"","Bodytype":"Kombi","Fax":"","Color":"Vit","Phone":"0221-771002","Homepage":"http://www.vmfordon.se","Email":"[email protected]","Info":"RING/MEJLA OCH BOKA TID, HEMLEVERANS, Svensksåld, Komplett Servicehistorik, Nyservad, En brukare, Möjlighet till 0kr kontant, Driver Support paket, Adaptiv farthållare m autobroms, Avståndsvarnare, Kollisionsvarnare m autobroms, Lane Departure Warning, Trafikskyltsinformation, ABS-bromsar, Airbag förare, Airbag passagerare fram, Avstängningsbar pass-airbag, Airbag sidor, Antisladdsystem, Antispinn, Auto Start/Stop, Cd-stereo, AUX-ingång, USB-ingång, Streaming via bluetooth, City Safety, Dieselvärmare med tidur VOC, Dragkrok, Elhissar fram och bak, Elstol Förare med minne, Elinfällbara Sidospeglar, Färddator, Gummimattor, Handsfree via Bluetooth, Helskinn, 2-zons klimatanläggning, Lastgaller, Multifunktionsratt i läder, Navigation, PDC Fram och bak, Rollo (lastrumsgardin), Rails, Regnsensor, Sportratt, Sportstolar, Sätesvärme fram, Sätesvärme bak, Vinterhjul Dubb, VOC volvo on call, Xenonstrålkastare, EURO 6, Fjärrstyrt c-lås keyless, 18\" Sommarhjul, Bränsleförbrukning: 0.58l/mil, Dragvikt B-körkort: 1100kg, Dragvikt utökat B: 1850kg, Max släpvagnsvikt: 2100kg, Kan leasas av företag, OBS Vi tar EJ kort, Betala gärna med Swish eller bankdosa, Läs om olika betalningssätt och ansök om lånelöfte på vår hemsida, Nästa service 2020-05-01 eller vid 17.000mil, GPS via simkort eller mobil hotspot, Vi byter in alla bilar som är svensksålda, Reservation för fel i annonsen, Du hittar alla våra bilar på www.vmfordon.se, RING ALLTID OCH BOKA TID, KONTORET 0221-771002, JENS 076-0409644","Gearboxtype":"Automatisk","Fueltype":"Diesel","Seller":"VMfordon (Västra Mälardalens Fordon AB)","City":"Köping","Contactid":"","ExklMoms":"1","Added":1557311417,"Environment":"0","Status":"0","Weight":"","Horsepower":181,"ContactName":"","ContactPhone":"","ContactMobile":"","ContactEmail":"","ContactPhoto":"","McEngineType":"","McCc":"","McPower":"133","McHours":"","CampersBeds":"","CampersLength":"","Images":{"Image":[{"URL":"https://pro.bbcdn.io/6d/6df619bd-ac97-4240-8566-90ad4f3e6a99?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/27/277f9484-2a1c-4cd1-9804-cbaa9b1e1087?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/9a/9a724e2f-4c59-4853-8350-74a04c6ed11f?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/94/94cf75e1-d966-46ea-ac64-abb81b652397?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/d5/d5a7e53c-9820-4ad3-8c75-0c8af36c34ee?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/9b/9bd7c0a2-8381-40cf-a132-d26f82930eb6?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/5e/5eac82ca-6f35-455d-925c-a8f86b5a2772?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/8b/8b5b9351-4db8-4a1e-99c6-af2d30084703?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/9e/9ec5358b-a402-4c0a-8cc4-bd48911c28fe?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/ad/adf0384d-0ee2-4dd4-b857-f105b949e55b?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/96/96db4c79-9509-4f5e-958e-7d3260ae6114?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/cf/cf6b9c2f-5d29-4314-b974-8ee51948f037?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/a4/a450e91b-55d3-4653-b656-83c149377f93?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/f0/f049bb26-f02c-44f1-8cc8-8b1a052ea440?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/d9/d90d6b84-2fc0-4284-82be-5559d6b96d54?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/88/88b40bcb-e402-4fc3-9f9b-a7685bc806be?rule=legacy-largest&format=.jpg"},{"URL":"https://pro.bbcdn.io/0b/0ba00ffa-53fb-41c0-b831-e725c61b28be?rule=legacy-largest&format=.jpg"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"},{"URL":"https://admin.bytbil.com/images/larssons"}]},"Warrantyprogram":"","Inwarrantyprogram":false,"Specs":null,"Description":"","Related":null,"Extras":{"Header":"","Footer":""}}]; | |
| let filter = { | |
| Brand: 'Volvo', | |
| Model: 'V60' | |
| } | |
| function multifilter(filter) { | |
| const filterKeys = Object.keys(filter) | |
| return DATASTORE.filter((item) => { | |
| return filterKeys.every(key => { | |
| console.debug(`Checking ${key}:${item[key]} === ${filter[key]}`) | |
| if (item[key] === filter[key]) { | |
| return true | |
| } | |
| }) | |
| }) | |
| } | |
| console.log(multifilter(filter)); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment