Как я могу найти свой объект с помощью lodash по id?

У меня есть объект userData (который исходит из хранилища Redux), который содержит это:

"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")

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

2 ответа

Решение

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

_.находить

аргументы

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

[Предикат =_.identity] (Функция): функция, вызываемая за одну итерацию.

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

1 стенография

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

2 стенография

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

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

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

_.matchesитерируйте стенографию.

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

_.matchesPropertyитерируйте стенографию.

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

Читайте больше из документации lodash: https://lodash.com/docs/4.16.6#find

Другие вопросы по тегам