【问题标题】:How can I find my object with lodash by id?如何通过 id 找到带有 lodash 的对象?
【发布时间】:2016-11-25 06:31:32
【问题描述】:

我有一个包含以下内容的 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")

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

【问题讨论】:

标签: reactjs lodash react-redux


【解决方案1】:

阅读 lodash 文档并观看示例

_.find

参数

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

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

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

1 速记

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

2 速记

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

【讨论】:

    【解决方案2】:

    根据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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 2021-09-04
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 2018-03-26
      相关资源
      最近更新 更多