2016-11-25 3 views
0

У меня есть USERDATA объект (который исходит от Redux магазина), который содержит этот:Как я могу найти свой объект с lodash по id?

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

Я пытаюсь найти 1-ый вроде этого:

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

Но когда я запускаю него говорит, что пакет не определен? Зачем?

+0

ваш код, кажется, хорошо, https://jsfiddle.net/W4QfJ/3398/ – QoP

+0

@QoP попытаться найти на "102" =) – stasovlas

ответ

1

чтения lodash документации и смотреть примеры

_.find

Аргументы

коллекция (Array | Object): Коллекция для проверки.

[предикат = _. Identity] (Функция): функция, вызываемая для каждой итерации.

[fromIndex = 0] (number): индекс для поиска.

1 сокращенная

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

2 сокращенная

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

Согласно Lodash documentation, правильный синтаксис был бы одним из следующих параметров:

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

_.matches итерационная стенография.

_.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

Смежные вопросы