我有一个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")
但是当我运行它时说包装是未定义的?为什么呢?
答案 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