Я вызываю канал 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()
дает мне четыре значения, которые не являются неопределенными, т.е.правильные и ожидаемые значения.