Как получить все идентификаторы из массива, встроенного в массив, используя Lodash? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть этот массив «Продукты» (содержит вложенные документы «Продукт», каждый со своим уникальным идентификатором):

Products: [ 
            { listPrice: '1.90', Product: {id: 'xxx1'} },
            { listPrice: '3.90', Product: {id: 'xxx2'} },
            { listPrice: '5.90', Product: {id: 'xxx3'} }
          ]

Я хочу получить этот результат ниже, используя Lodash:

filterIds = ['xxx1', 'xxx2', 'xxx3'];

В моем коде это то, что я написал:

filterIds = _.map(this.Products.Product, 'id');

Но он просто возвращает [].

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете сделать это, используя Array.prototype.map метод vanilla JS, например:

const arr = [{listPrice:'1.90',Product:{id:'xxx1'}},{listPrice:'3.90',Product:{id:'xxx2'}},{listPrice:'5.90',Product:{id:'xxx3'}}],

filtered = arr.map(obj => obj.Product.id);
console.log(filtered);

Если вы должны использовать lodash:

const arr = [{listPrice:'1.90',Product:{id:'xxx1'}},{listPrice:'3.90',Product:{id:'xxx2'}},{listPrice:'5.90',Product:{id:'xxx3'}}],

res = _.map(arr, obj => obj.Product.id);
console.log(res);
<script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script>
...