我正在使用ExpressJS在我的应用程序今日公路旅行中创建JSON,我将在指标 0 - 0 中创建新阵列JSON >列出停车位。
如何在指标 0 中创建新数组为 0 ?
示例JSON:
{ "data": [
{ "speed": "0" },
{ "speed": "10" },
{ "speed": "2" },
{ "speed": "5" },
{ "speed": "4" },
{ "speed": "9" },
{ "speed": "0" },
{ "speed": "2" },
{ "speed": "4" },
{ "speed": "33" },
{ "speed": "0" },
]};
为:
{ "data": [{
"1": [
{ "speed": "10" },
{ "speed": "2" },
{ "speed": "5" },
{ "speed": "4" },
{ "speed": "9" },
],
"2": [
{ "speed": "2" },
{ "speed": "4" },
{ "speed": "33" },
]
}]};
由于
答案 0 :(得分:0)
你可以这样做。简单的逻辑:
var arrayData = { "data": [
{ "speed": "0" },
{ "speed": "10" },
{ "speed": "2" },
{ "speed": "5" },
{ "speed": "4" },
{ "speed": "9" },
{ "speed": "0" },
{ "speed": "2" },
{ "speed": "4" },
{ "speed": "33" },
{ "speed": "0" },
]};
var key = 0;
var innerArray=[{}];
arrayData.data.forEach((obj, index)=>{
if(obj.speed === "0"){
//check that this is not last object
if(index+1 !== arrayData.data.length){
key++;
innerArray[0][key]=[];
}
} else {
innerArray[0][key].push(obj);
}
});
var resultArray = { "data": innerArray};
console.log(resultArray)
答案 1 :(得分:0)
const result = [];
input.reduce((trip, {speed}) => speed === "0" && trip.length ? (result.push(trip), []) : (trip.push({speed}), trip), []);
只要发生0,就开始新的旅行,如果不是只是将数据添加到旅行中。
如果您更喜欢命令式而非函数式编程:
const result = [];
var trip = [];
for(const {speed} of input){
if(speed === "0" && trip.length){
result.push(trip);
trip = [];
}else{
trip.push({speed});
}
}