I want to filter this data array into state and city array. How can I achieve this using lodash or any other better way rather than for loop and maintaining extra arrays.
data: [
{ id: 1, name: Mike, city: philps, state: New York},
{ id: 2, name: Steve, city: Square, state: Chicago},
{ id: 3, name: Jhon, city: market, state: New York},
{ id: 4, name: philps, city: booket, state: Texas},
{ id: 5, name: smith, city: brookfield, state: Florida},
{ id: 6, name: Broom, city: old street, state: Florida},
]
which user click state
, list of state appears.
{state: New York, count: 2},
{state: Texas, count: 1},
{state: Florida, count: 2},
{state: Chicago, count: 1},
When user click particular state, list of cities
of that state appears. For ex. when user clicks New York state,
{id:1, name: Mike, city: philps}
{id:3, name: Jhon, city: market}
With lodash, you could use
_.filter
with an object as_.matches
iteratee shorthand for filtering the object with a given key/value pair anduse
_.countBy
with_.map
for getting a count of states.This is fairly simple using
Array.prototype.filter
,Array.prototype.map
,Array.prototype.reduce
and destructuring:cf this jsfiddle to see it in action.
Simply Follow filter function For Example
You can do this using
native
javascript by applyingfilter
method which accepts as parameter acallback
provided function.Another approach is to use
arrow
functions.