1 回答
TA贡献1891条经验 获得超3个赞
因此,假设您有变量名为 salesReport 的数据,如下所示:
{
"sales": {
"totals": {
"2015-01-18": {
"sales": "-17.00",
},
"2015-01-21": {
"sales": "597.10",
},
"2015-02-18": {
"sales": "32.00",
},
"2015-03-12": {
"sales": "22.00",
},
},
}
}
然后,您希望访问每个日期的 sales.totals 数据,而无需知道关键详细信息。此外,如果您需要存储密钥(在本例中为日期)及其各自的值,那么您可以首先使用Object.entries将它们转换为条目,如以下代码所示:
const salesReportTotalsEntries = Object.entries(salesReport.sales.totals);
然后您可以使用以下命令访问每个日期的销售数据
salesReportTotalsEntries[0][1].sales
salesReportTotalsEntries[1][1].sales
最后一步是,您可以使用Array.reduce根据每个月的数据对每个总销售数据进行求和。这是完整的代码:
const salesReport = {
"sales": {
"totals": {
"2015-01-18": {
"sales": "-17.00",
},
"2015-01-21": {
"sales": "597.10",
},
"2015-02-18": {
"sales": "32.00",
},
"2015-03-12": {
"sales": "22.00",
},
},
}
};
const salesReportTotalsEntries = Object.entries(salesReport.sales.totals);
const salesReportTotalsByMonths = salesReportTotalsEntries.reduce((a, v) => {
const currentMonth = v[0].split('-')[1];
if (!a[currentMonth]) {
a[currentMonth] = Number(v[1].sales);
return a;
}
a[currentMonth] += Number(v[1].sales);
return a;
}, {});
console.log(`Total Sales Report in January is ${salesReportTotalsByMonths['01']}`);
console.log(`Total Sales Report in February is ${salesReportTotalsByMonths['02']}`);
添加回答
举报