Javascript,通过id在对象列表中查找对象

时间:2015-10-21 20:54:28

标签: javascript lodash

我有一个对象列表,我需要通过ID专门找到一个对象。所以非常简单:

{ 
 {
   "id": "1"
 },{
   "id": "2"
 }
}

我有一个函数,我希望通过它的id找到对象,这不会像这样工作

 function findOb (id) {

   return _.find(myList, function(obj) { return obj.id === id } );

 }

它没有返回正确的对象(这是使用lodash)不确定我做错了什么,可以使用一些帮助。谢谢!

编辑 - 我不知道这是否有帮助,但我正在构建并尝试以此格式搜索对象 - https://github.com/pqx/react-ui-tree/blob/gh-pages/example/tree.js。因此,有时候只有带有模块和叶子的对象,我希望能够通过'模块搜索和查找。键。感谢大家的反馈!

1 个答案:

答案 0 :(得分:7)

您的代码应该有效,但可以简化。

如果您为predicate提供_.find参数的属性名称,它将在该属性中搜索thisArg值。

function findOb(id) {
    return _.find(myList, 'id', id);
}

我可以在您的代码中看到的唯一问题是您在比较中使用===。如果您将1作为ID参数而不是"1",则它不会匹配,因为===执行严格的类型检查。