亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Reducer 函數無法在 reducer 對象中創建鍵值對

Reducer 函數無法在 reducer 對象中創建鍵值對

呼啦一陣風 2021-06-29 17:55:00
我調用 RSS 提要并使用解析器對其進行解析。我收到一個數組。我現在想最終創建一個對象,如下所示:{  "2019-06-13": {    "rates": {      "usd": "1.1289",      "jpy": "122.44",      "gbp": "0.88948",      "chf": "1.1207"    },    "date": "2019-06-13"  }}該.reduce功能目前看起來像這樣。當我嘗試設置日期時收到錯誤消息:rateJson = rateArray.reduce((acc, curr) => {                    let currObj =                        curr['cb:statistics'][0]['cb:exchangeRate'][0];                    let currCurrency = currObj['cb:targetCurrency'][0].toLowerCase();                    let currDate =                        currObj['cb:observationPeriod'][0]['cb:period'][0];                    let currRate = {                        rate: currObj['cb:observation'][0]['cb:value'][0],                        mult: currObj['cb:observation'][0]['cb:unit_mult'][0]                    };                    console.log(currDate,currCurrency,currRate, acc)                    acc[currDate]['date'] = currDate;                    acc[currDate]['rates'][currCurrency] = currRate;                    return acc;                }, {});錯誤信息: TypeError: Cannot set property 'date' of undefined該console.log()語句給了我四個未定義的值,即正確的和預期的值。
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

您需要先創建一個對象,然后才能為其賦值:


acc[currDate] = acc[currDate] || {};

acc[currDate].date = currDate;

acc[currDate].rates = acc[currDate].rates || {};

acc[currDate].rates[currCurrency] = currRate;

該obj = obj || {}模式只是“如果尚不存在則創建并分配新對象”的簡寫。


查看完整回答
反對 回復 2021-07-01
  • 1 回答
  • 0 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號