感谢您浏览这里。我正在使用 API,需要更改数据的格式。下面是返回数据的示例:
data: [
{
status: "planned work",
name: "123"
},
{
status: "all good",
name: "nqr"
}
];
每条火车线路都有一个类似“123”或“nqr”的名称,我想将每列火车分成自己的对象,这样它看起来像这样:
data: [
{
status: "planned work",
name: "1"
},
{
status: "planned work",
name: "2"
},
{
status: "planned work",
name: "3"
},
{
status: "all good",
name: "n"
},
{
status: "all good",
name: "q"
},
{
status: "all good",
name: "r"
}
];
我有一些工作代码,可以分割名称并使用嵌套的 .forEach
循环将项目推送到数组中。工作代码:
function formatLinesData(lines) {
var trains = [];
lines.forEach( line => {
line.name.split("").forEach(train => {
trains.push({name: train, status: line.status});
});
});
return trains;
}
有没有一种方法可以在不使用嵌套循环的情况下完成此任务?如果您有的话,请寻找一种优雅的解决方案。
谢谢
最佳答案
您可以执行以下操作;
var data = [
{
status: "planned work",
name: "123"
},
{
status: "all good",
name: "nqr"
}
],
newData = [].concat(...data.map(o => o.name.split("").map(c => ({status: o.status, name: c}))));
console.log(newData);
关于Javascript 数组操作 - 是否有更具声明性的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362724/