gpt4 book ai didi

javascript - 减少函数返回未定义

转载 作者:行者123 更新时间:2023-11-28 03:28:55 24 4
gpt4 key购买 nike

我搜索了以前回答过的问题,但我认为这是一个独家挑战(请原谅我的英语)。

我下面有这个函数,期望从回调的reduce函数返回

const { getTrips } = require('api');
const { getDriver } = require('api')
const { getVehicle } = require('api')

/**
* This function should return the data for drivers in the specified format
*
* Question 4
*
* @returns {any} Driver report data
*/

let trips = await getTrips().then(data => {
return data.filter(item => item.billedAmount = parseFloat(item.billedAmount.toString().replace(',', '')), 10)
})
async function driverReport() {
// Your code goes here
let getId = trips.reduce((acc, cur)=>{
acc[cur.driverID] ? acc[cur.driverID] = acc[cur.driverID] + 1 : acc[cur.driverID] = 1
return acc
}, {})

let mapId = Object.keys(getId)
// console.log(mapId)
let result = await mapId.reduce(getReport, {})
console.log(result)//undefined


}

回调函数如下

async function getReport(acc, cur){


acc = await acc
// console.log(acc)

let singleTrip = trips.filter(item => item.driverID == cur)
// console.log(singleTrip)
if(singleTrip){

return getDriver(cur).then( async data => {
let { name, phone, vehicleID } = data
acc['fullName'] = name
acc['id'] = cur
acc['phone'] = phone
acc['noOfTrips'] = singleTrip.length
acc['noOfVehicle'] = vehicleID.length

return acc

}).catch(err =>{
if(err){
console.log ('wait')
}
})
}

return acc
}

回调函数工作正常,但没有将值返回到上面的结果变量。

我已经彻底检查并确认我已正确使用return,但我确信在某个地方出错了。请帮助找出哪里出错了,因为我正在尝试在 Javascript 中使用 async 和 wait 。

最佳答案

我终于想到我必须在reducer函数中返回acc。感谢您的指导。

关于javascript - 减少函数返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58352767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com