【问题标题】:trying to match 2 values in JSON array and get the corresponding value with in the array尝试匹配 JSON 数组中的 2 个值并获取数组中的对应值
【发布时间】:2017-03-11 19:49:34
【问题描述】:

我正在尝试比较 JSON 中的年龄和性别,并尝试打印相应的名称以获取详细信息。但它也不适合我。

_.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"
}
],

【问题讨论】:

标签: angularjs lodash


【解决方案1】:

为什么要为此使用 lodash,javascript 通过 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');
})

【讨论】:

    【解决方案2】:

    您的代码可以正常工作,我添加了 _.result()_.find() 函数:

    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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 2020-01-21
      相关资源
      最近更新 更多