Удалить базовый ключевой объект из массива объекта, используя lodash или javascript - PullRequest
0 голосов
/ 02 октября 2018

У меня есть массив объектов, как показано ниже, который имеет базовый объект с набором значений.

Мне нужно удалить базовый объект всех данных и сделать его как ожидаемый результат ниже.

Пример массива

[
     {
        "100": {
            "id": "100",
            "name": "Test name 1"
        },
        "101": {
            "id": "101",
            "name": "Test name 2"
        },
        "102": {
            "id": "102",
            "name": "Test name 3"
        }

     }
]

Ожидаемый результат

[        
        {
            "id": "100",
            "name": "Test name 1"
        },
        {
            "id": "101",
            "name": "Test name 2"
        },
        {
            "id": "102",
            "name": "Test name 3"
        }         
]

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете выполнить итерацию с помощью Array.map(), получить значения объекта с помощью Object.values() и сгладить результаты в одном массиве путем распространения в Array.concat():

const data = [{"100":{"id":"100","name":"Test name 1"},"101":{"id":"101","name":"Test name 2"},"102":{"id":"102","name":"Test name 3"}}];

const result = [].concat(...
  data.map(o => Object.values(o))
);

console.log(result);

С lodash вы можете использовать _.flatMap() с _.values():

const data = [{"100":{"id":"100","name":"Test name 1"},"101":{"id":"101","name":"Test name 2"},"102":{"id":"102","name":"Test name 3"}}];

const result = _.flatMap(data, _.values);

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