Получить массив значений из массива объектов, используя lodash - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть этот массив

    this.complementaryFields = [
        {
            fieldName: 'complementaryLaser',
            label: 'Laser Hair Removal'
        },
        {
            fieldName: 'complementarySkin',
            label: 'Skin'
        },
        {
            fieldName: 'complementaryInjection',
            label: 'Cosmetic Injections'
        },
        {
            fieldName: 'complementaryNotSure',
            label: 'Not Sure'
        }
    ];

, и я хотел бы создать из него новый массив, как показано ниже:

    this.complementaryFieldNames = [
        'complementaryLaser',
        'complementarySkin',
        'complementaryInjection',
        'complementaryNotSure'
    ];

Как бы вы сделали это с помощью lodash?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете просто использовать lodash _.map, чтобы получить такой результат:

const data = [{ fieldName: 'complementaryLaser', label: 'Laser Hair Removal' }, { fieldName: 'complementarySkin', label: 'Skin' }, { fieldName: 'complementaryInjection', label: 'Cosmetic Injections' }, { fieldName: 'complementaryNotSure', label: 'Not Sure' } ];

const result = _.map(data, 'fieldName')

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

С ES6 вы можете сделать то же самое с Array.map и деструктуризацией:

const data = [{ fieldName: 'complementaryLaser', label: 'Laser Hair Removal' }, { fieldName: 'complementarySkin', label: 'Skin' }, { fieldName: 'complementaryInjection', label: 'Cosmetic Injections' }, { fieldName: 'complementaryNotSure', label: 'Not Sure' } ];

const result = data.map(({fieldName}) => fieldName)

console.log(result)
...