Как я могу найти свой объект с помощью 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