daydreamer daydreamer - 1 month ago 5
Javascript Question

Lodash: how do I use filter when I have nested Object?

Consider this example. I am using Lodash

'data': [
{
'category': {
'uri': '/categories/0b092e7c-4d2c-4eba-8c4e-80937c9e483d',
'parent': 'Food',
'name': 'Costco'
},
'amount': '15.0',
'debit': true
},
{
'category': {
'uri': '/categories/d6c10cd2-e285-4829-ad8d-c1dc1fdeea2e',
'parent': 'Food',
'name': 'India Bazaar'
},
'amount': '10.0',
'debit': true
},
{
'category': {
'uri': '/categories/d6c10cd2-e285-4829-ad8d-c1dc1fdeea2e',
'parent': 'Food',
'name': 'Sprouts'
},
'amount': '11.1',
'debit': true
},


When I do

_.filter(summary.data, {'debit': true})


I get all the objects back.

what I want?

I want all the objects where
category.parent == 'Food'
, how can I do that?

I tried

_.filter(summary.data, {'category.parent': 'Food'})


and got

[]

Answer
_.filter(summary.data, function(item){
  return item.category.parent === 'Food';
});