【问题标题】:How to get object from JSON which has specific properties using lodash?如何使用 lodash 从具有特定属性的 JSON 中获取对象?
【发布时间】:2017-01-12 10:53:40
【问题描述】:

我有一个 JSON 字符串如下:

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

JSON 的结构是固定的。

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

例如id 为“emp123124”的 Emp1 对象。

如何使用 lodash 轻松做到这一点?

【问题讨论】:

标签: javascript lodash


【解决方案1】:

_.find()

遍历集合的元素,返回第一个元素谓词返回truthy for。谓词使用三个参数调用:(值、索引|键、集合)。


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>

【讨论】:

    【解决方案2】:

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

    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);

    【讨论】:

    • 我知道 - 我意识到了这一点,因此我在 2 秒后删除了评论
    【解决方案3】:

    只需使用_.find 速记

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 2016-09-03
      • 2018-07-31
      • 2018-07-20
      • 2016-02-18
      • 2020-10-25
      • 2019-12-13
      相关资源
      最近更新 更多