2 回答
![?](http://img1.sycdn.imooc.com/533e4d510001c2ad02000200-100-100.jpg)
TA贡献1811条经验 获得超6个赞
您不应该使用filterfor,trips因为它正在改变项目并根据item.billedAmount布尔值进行过滤。因此,如果item.billedAmount是0在任何时候,该项目将从中删除trips;map如果要修改项目的值,则必须改用。item变异后返回整个而不是更新对象内的值并将变异作为值返回
let trips = await getTrips().then(data => {
return data.map(item => {
item.billedAmount = parseFloat(item.billedAmount.toString().replace(',', ''));
return item;
})
});
编辑 至于问题,试试这个?
async function getReport(acc, cur){
let singleTrip = trips.filter(item => item.driverID == cur)
if(singleTrip && singleTrip.length) { //filter returns empty array
try{
data = await getDriver(cur);
let { name, phone, vehicleID } = data;
acc {
fullName: name,
id: cur,
phone,
noOfTrips: singleTrip.length,
noOfVehicle: vehicleID.length
}
}catch(e) {
console.log(err);
}
}
return acc
}
添加回答
举报