第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Reduce 函數(shù)返回未定義

Reduce 函數(shù)返回未定義

江戶川亂折騰 2021-11-18 16:02:24
我已經(jīng)搜索了以前回答過的問題,但我認(rèn)為這是一個(gè)獨(dú)家挑戰(zhàn)(請(qǐng)?jiān)徫业挠⒄Z)。我在下面有這個(gè)函數(shù),期望從回調(diào)減少函數(shù)返回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}回調(diào)函數(shù)如下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}回調(diào)函數(shù)正常工作,但沒有將值返回到上面的結(jié)果變量。我已經(jīng)徹底檢查并確認(rèn)我使用return得當(dāng),但我肯定在某個(gè)地方弄錯(cuò)了。請(qǐng)幫助找出哪里出錯(cuò)了,因?yàn)槲艺噲D掌握在 Javascript 中使用 async 和 await 的竅門。
查看完整描述

2 回答

?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊

您不應(yīng)該使用filterfor,trips因?yàn)樗诟淖冺?xiàng)目并根據(jù)item.billedAmount布爾值進(jìn)行過濾。因此,如果item.billedAmount是0在任何時(shí)候,該項(xiàng)目將從中刪除trips;map如果要修改項(xiàng)目的值,則必須改用。item變異后返回整個(gè)而不是更新對(duì)象內(nèi)的值并將變異作為值返回


let trips = await getTrips().then(data => {

  return data.map(item => {

    item.billedAmount = parseFloat(item.billedAmount.toString().replace(',', ''));

    return item;

   })

 });

編輯 至于問題,試試這個(gè)?


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

}


查看完整回答
反對(duì) 回復(fù) 2021-11-18
?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

我終于想到我必須返回acc到 reducer 函數(shù)中。感謝您的指導(dǎo)。


查看完整回答
反對(duì) 回復(fù) 2021-11-18
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)