Как преобразовать вложенный массив в обычный массив и изменить типы? - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть следующая структура массива:

[{Id: Number, Attributes: {Name: String, Age: String, Height: String}}]

И я хочу преобразовать его в:

[{Id: Number, Name: String, Age: Number, Height: Number}]

Также как преобразовать "2018-12-12 09:19:40" в объект Date?При конвертации всего массива.

Как это сделать?Используя lodash или нет.

Ответы [ 2 ]

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

Если вы хотите преобразовать объект в массив (изменить тип), вы можете попробовать Object.entries ();В Es2017 есть свойство, которое может быть полезно в этих случаях (Object.entries ());

const cars = {"BMW": 3, "Tesla": 2, "Audi": 5}
const map = new Map(Object.entries(cars));
console.log(map);

Надеюсь, это поможет

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

Вы можете использовать map с расширенным синтаксисом ....

const data = [{Id: 'Number', Attributes: {Name: 'String', Age: 'String', Height: 'String'}}]
const res = data.map(({Attributes, ...rest}) => ({...rest, ...Attributes}))
console.log(res)

Для преобразования типов данных вы можете использовать некоторую вложенную деструктуризацию.

const data = [{Id: 'Number', Attributes: {Name: 'String', Age: '20', Height: '123'}}]
const res = data.map(({Attributes: {Age, Height, ...attr}, ...rest}) => ({
  ...rest,
  ...attr,
  Age: +Age,
  Height: +Height
}))
console.log(res)
...