我有一系列具有String
值的对象,我想将其转换为Date
,但我收到以下错误:
Uncaught SyntaxError:意外的令牌:
我应该如何正确地执行此转换并返回相同的对象结构?
array = [
{
end: "2017-05-18T09:00:00.000Z",
start: "2017-05-18T06:00:00.000Z"
},
{
end: "2017-05-19T07:00:00.000Z",
start: "2017-05-19T06:00:00.000Z"
},
{
end: "2017-05-20T08:00:00.000Z",
start: "2017-05-20T07:00:00.000Z"
}
]
result = array.map((element) => {
{
end: new Date(element.end),
start: new Date(element.start),
}
})
答案 0 :(得分:2)
你要么:
result = array.map(element => ({
end: new Date(element.end),
start: new Date(element.start),
}));
OR:
result = array.map(element => {
return {
end: new Date(element.end),
start: new Date(element.start),
};
})
答案 1 :(得分:1)
您收到的错误是因为javascript认为{ end: new Date(element.end), start: new Date(element.start), }
是一个代码块。
将其更改为
result = array.map((element) => {
return {
end: new Date(element.end),
start: new Date(element.start),
}
})
console.log(result)
你错过了回归。
答案 2 :(得分:1)
您可以将对象括在括号广告返回值中。
let array = [{ end: "2017-05-18T09:00:00.000Z", start: "2017-05-18T06:00:00.000Z" }, { end: "2017-05-19T07:00:00.000Z", start: "2017-05-19T06:00:00.000Z" }, { end: "2017-05-20T08:00:00.000Z", start: "2017-05-20T07:00:00.000Z" }],
result = array.map(element => ({
end: new Date(element.end),
start: new Date(element.start),
}));
console.log(result);
答案 3 :(得分:0)
要使用箭头功能返回对象,您需要额外的括号,如下所示:
results = array.map(el => ({ end: new Date(el.end), start: new Date(el.start) }) )