我具有以下数组结构:
[{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。
答案 0 :(得分:4)
您可以将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)
答案 1 :(得分:0)
如果要将对象转换为数组(更改类型),可以尝试Object.entries();。 在Es2017中,有一个在这种情况下有用的属性(Object.entries());
const cars = {"BMW": 3, "Tesla": 2, "Audi": 5}
const map = new Map(Object.entries(cars));
console.log(map);
希望这会有所帮助