如何通过id找到lodash的对象?

时间:2016-11-25 06:31:33

标签: reactjs lodash react-redux

我有一个userData对象(来自redux商店),其中包含:

"packs": [
          {
            "name": "Docos",
            "id": "101",
            "price": 1000,
            "gifted": false
          },
          {
            "name": "Entertainment Plus",
            "id": "102",
            "price": 1000,
            "gifted": false
          }]

我试图找到第一个这样的人:

 let pack = _.find(this.props.userData.packs, 'id', "101")

但是当我运行它时说包装是未定义的?为什么呢?

2 个答案:

答案 0 :(得分:2)

阅读lodash文档并观看示例

<强> _。找到

  

参数

     

collection(Array | Object):要检查的集合。

     

[predicate = _。identity](函数):每次迭代调用的函数。

     

[fromIndex = 0](number):要搜索的索引。

1简写

_.find(this.props.userData.packs, {id: '101'})

2简写

_.find(this.props.userData.packs, ['id', '101'])

答案 1 :(得分:0)

根据Lodash documentation,正确的语法将是以下之一:

_.find(this.props.userData.packs, function(p) { return p.id === '101'; });

_.matches iteratee简写。

_.find(this.props.userData.packs, { 'id': '101' });

_.matchesProperty iteratee简写。

_.find(this.props.userData.packs, [ 'id': '101' ]);

lodash 文档中了解详情:https://lodash.com/docs/4.16.6#find