我有一个对象列表,我需要通过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。因此,有时候只有带有模块和叶子的对象,我希望能够通过'模块搜索和查找。键。感谢大家的反馈!
答案 0 :(得分:7)
您的代码应该有效,但可以简化。
如果您为predicate
提供_.find
参数的属性名称,它将在该属性中搜索thisArg
值。
function findOb(id) {
return _.find(myList, 'id', id);
}
我可以在您的代码中看到的唯一问题是您在比较中使用===
。如果您将1
作为ID参数而不是"1"
,则它不会匹配,因为===
执行严格的类型检查。