1

I am trying to compare the age and gender in JSON and trying to print the corresponding name for the details. but its nor working for me.

_.each(response.details, function(value, key){
   if (value.age == "12" && value.gender == "male") {
            console.log(value.name + "name")
   }
});

JSON:

details: [
{
  age: "12",
  gender: "male",
  name: "danny"
},
{
  age: "13",
  gender: "male",
  name: "sunny"
},
{
  age: "12",
  gender: "female",
  name: "janny"
},
{
  age: "14",
  gender: "female",
  name: "josef"
}
],
Aᴍɪʀ
  • 7,623
  • 3
  • 38
  • 52
samnu pel
  • 914
  • 5
  • 12

2 Answers2

0

your code just works, I added _.result() and _.find() functions:

var details = [{
  age: "12",
  gender: "male",
  name: "danny"
}, {
  age: "13",
  gender: "male",
  name: "sunny"
}, {
  age: "12",
  gender: "female",
  name: "janny"
}, {
  age: "14",
  gender: "female",
  name: "josef"
}];

console.log(_.result(_.find(details, {
  age: '12',
  gender: 'male'
}), 'name') + 'name');
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.js"></script>
Andriy
  • 14,781
  • 4
  • 46
  • 50
0

Why use lodash for this, javascript provides this support natively via filter!

var details = [{
  age: "12",
  gender: "male",
  name: "danny"
}, {
  age: "13",
  gender: "male",
  name: "sunny"
}, {
  age: "12",
  gender: "female",
  name: "janny"
}, {
  age: "14",
  gender: "female",
  name: "josef"
}];

var results = details.filter(function(row) {
 if (row.age == "12" && row.gender == "male") {
  return true;
 }
});
results.forEach(function(result) {
  console.log(result.name + ' name');
})
Enzey
  • 5,254
  • 1
  • 18
  • 20