如何解决减少函数将数据包装在数组中
我有一个 reduce 函数,可以按照我需要的方式格式化我的数据,但唯一的问题是数据嵌套在数组中。我需要删除外部数组或只是阻止 reduce 函数添加它,但是我为阻止 reducer 将数据包装在数组中所做的每一次尝试都会破坏我的代码。理想情况下,我希望我的减速器不要将数据包装在数组中,但如果那不可能从减速器内部干净地删除我需要的数组似乎是唯一的解决方案:
我的数据如下所示:
{
count: 4,datapoints: [
{
Date: "2021-05-05",score: 0,},{
Date: "2021-05-12",{
Date: "2021-05-30",{
Date: "2021-06-03",score: 114,],};
const riskscores = await api.PCC.riskAssessment(userID,startdate,endDate);
const riskscoresFormatted = riskscores.datapoints.reduce((result,data) => {
const scores = result["riskAssessment"] || [];
scores.push({
value: data.score,unit: "none",recordedDate: data.Date,method: "none",type: "riskAssessment",});
result["riskAssessment"] = scores;
return result;
},[]);
输出:
[riskAssessment: [{…},{…},{…}] ]
我试过只使用返回未定义的 riskscoresFormatted[0]
索引。 riskscoresFormatted.slice(1)
只返回一个空数组。我也试过像 riskscoresFormatted.riskAssessment
这样的第一个项目,但这个值有时是空的,所以它会导致后面的错误。
解决方法
尝试将最终的 reduce 参数从 []
更改为 {}
,我认为您会获得更好的运气。
const riskScoresFormatted = riskScores.datapoints.reduce((result,data) => {
const scores = result["riskAssessment"] || [];
scores.push({
value: data.score,unit: "none",recordedDate: data.Date,method: "none",type: "riskAssessment",});
result["riskAssessment"] = scores;
return result;
},{});
或者,使用 Array.map()
代替:
const riskScores = {
count: 4,datapoints: [{
Date: "2021-05-05",score: 0,},{
Date: "2021-05-12",{
Date: "2021-05-30",{
Date: "2021-06-03",score: 114,],};
var riskScoresFormatted = riskScores.datapoints.map((data) => ({
value: data.score,}));
console.log(riskScoresFormatted);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。