如何使用lodash从JSON获取具有特定属性的对象?

时间:2017-01-12 10:53:41

标签: javascript lodash

我有一个JSON字符串,如下所示:

var empJSON = {
    "Emp1":{
        id:"emp123124",
        name:"xyz"
    },
    "Emp2":{
        id:"emp12654",
        name:"abx"
    }
};

JSON的结构是固定的。

我想获取具有特定ID的当前对象。

e.g。 Emp1对象,其中id为" emp123124"。

如何使用lodash轻松完成此操作?

3 个答案:

答案 0 :(得分:2)

_.find()

迭代集合的元素,返回第一个元素谓词返回truthy for。使用三个参数调用谓词:(value,index | key,collection)。



var empJSON = {
  "Emp1": {
    id: "emp123124",
    name: "xyz"
  },
  "Emp2": {
    id: "emp12654",
    name: "abx"
  }
};

var id = "emp12654";
var result = _.find(empJSON, function(emp) { return emp.id === id });

console.log(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用原生JavaScript Object.keysArray#find方法。

&#13;
&#13;
var empJSON = {
  "Emp1": {
    id: "emp123124",
    name: "xyz"
  },
  "Emp2": {
    id: "emp12654",
    name: "abx"
  }
};

var id = 'emp12654';
 
var res = empJSON[Object.keys(empJSON).find(function(k) {
  return empJSON[k].id == id;
})];

console.log(res);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

只需使用_.find简写

_.find(empJSON, {id: 'emp123124'})