这是我的代码:
if args['database'] == "mnist":
print('Hello!')
我似乎无法在数据映射中添加if语句,上面是我要实现的目标示例。我尝试用 let datasets = data.map(
item => ({
"label": item.name,
"data": item.prices.map(nested => ({
if( /* Last row */ ){
"x": new Date(nested.updatedAt),
"y": Number(nested.price)
} else {
"x": new Date(nested.createdAt),
"y": Number(nested.price)
}
}))
})
);
进行测试,它似乎不允许在数据映射中包含代码。虽然我发现这个stackoverflow做了类似的事情。有什么建议吗?
答案 0 :(得分:2)
地图需要return
声明。因此,完全有效的做这样的事情:
let datasets = data.map((item) => {
var obj = {};
obj.label = item.name
obj.data = item.prices.map((subItem, key) => {
if (item.prices.length === key + 1) {
return {x: new Date(subItem.updateAt), y: Number(subItem.price)};
}
return {x: new Date(subItem.createdAt), y: Number(subItem.price)}
})
return obj;
})
return语句结束了地图中的当前迭代。
答案 1 :(得分:1)
您可以使用带有new Date()
构造函数的条件运算符来传递nested.updatedAt
或nested.createdAt
let datasets = data.map(
item => ({
"label": item.name,
"data": item.prices.map(nested =>
({
"x": new Date(lastrow ? nested.updatedAt : nested.createdAt),
"y": Number(nested.price)
})
)
})
);
答案 2 :(得分:0)
传递给.map的参数是item
,count
,array
所以你可以......
item.prices.map((nested,count,array) => {
if ( count == arr.length - 1 ) { /* last one */
// do something for last one
} else {
// not last one
}
});