Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示react中单个项目的总和_Javascript_Reactjs - Fatal编程技术网

Javascript 显示react中单个项目的总和

Javascript 显示react中单个项目的总和,javascript,reactjs,Javascript,Reactjs,我想显示单个项的名称及其总和。你能帮帮我吗 const meals = [ { calorie: 10, diet: 'Chicken', day: 1 }, { calorie: 15, diet: 'Soya', day: 2 }, { calorie: 20, diet: 'Chicken', day: 3 }, { calorie: 25,

我想显示单个项的名称及其总和。你能帮帮我吗

 const meals = [
    { calorie: 10,
      diet: 'Chicken',
      day: 1
    },
    { calorie: 15,
      diet: 'Soya',
      day: 2
    },
    { calorie: 20,
       diet: 'Chicken',
       day: 3
    },
    { calorie: 25,
        diet: 'Soya',
        day: 4
      }
  ];
我的输出: 饮食总量(鸡)为=30(10+20) 饮食总量(大豆)为40(15+25) 我想显示饮食名称和总热量,如下所示

Chicken = 30
  Soya = 40
你可以使用这个方法

const膳食=[{
卡路里:10,
饮食:“鸡肉”,
日期:1
},
{
卡路里:15,
饮食:“大豆”,
日期:2
},
{
卡路里:20,
饮食:“鸡肉”,
日期:3
},
{
卡路里:25,
饮食:“大豆”,
日期:4
}
];
常量输出=膳食。减少((acc,cur)=>{
如果(!acc[cur.diet])acc[cur.diet]=0;
acc[当前饮食]+=当前卡路里
返回acc;
}, {});
控制台日志(输出)您可以使用方法

const膳食=[{
卡路里:10,
饮食:“鸡肉”,
日期:1
},
{
卡路里:15,
饮食:“大豆”,
日期:2
},
{
卡路里:20,
饮食:“鸡肉”,
日期:3
},
{
卡路里:25,
饮食:“大豆”,
日期:4
}
];
常量输出=膳食。减少((acc,cur)=>{
如果(!acc[cur.diet])acc[cur.diet]=0;
acc[当前饮食]+=当前卡路里
返回acc;
}, {});
控制台日志(输出)您可以使用对象来存储每个饮食的总和

const膳食=[
{卡路里:10,
饮食:“鸡肉”,
日期:1
},
{卡路里:15,
饮食:“大豆”,
日期:2
},
{卡路里:20,
饮食:“鸡肉”,
日期:3
},
{卡路里:25,
饮食:“大豆”,
日期:4
}
];
const res=膳食。减少((acc,{卡路里,饮食})=>
(acc[饮食]=(acc[饮食]| 0)+卡路里,acc),{};
for(常数键在res中){
log(键“=”,res[key]);
}
您可以使用对象来存储每个饮食的总和

const膳食=[
{卡路里:10,
饮食:“鸡肉”,
日期:1
},
{卡路里:15,
饮食:“大豆”,
日期:2
},
{卡路里:20,
饮食:“鸡肉”,
日期:3
},
{卡路里:25,
饮食:“大豆”,
日期:4
}
];
const res=膳食。减少((acc,{卡路里,饮食})=>
(acc[饮食]=(acc[饮食]| 0)+卡路里,acc),{};
for(常数键在res中){
log(键“=”,res[key]);

}
可以使用

const-feeds=[{卡路里:10,饮食:鸡肉,一天:1},{卡路里:15,饮食:大豆,一天:2},{卡路里:20,饮食:鸡肉,一天:3},{卡路里:25,饮食:大豆,一天:4}]
const calculateSum=(data)=>data.reduce((res{
卡路里
饮食
}) => {
//添加/更新键为'diet'的对象
//将卡路里与之前的值相加,
//如果对象不在'res'对象中,则将卡路里添加到'0'中`
res[饮食]=(res[饮食]| 0)+卡路里;
返回res;
}, {})

console.log(calculateSum(膳食))可以使用

const-feeds=[{卡路里:10,饮食:鸡肉,一天:1},{卡路里:15,饮食:大豆,一天:2},{卡路里:20,饮食:鸡肉,一天:3},{卡路里:25,饮食:大豆,一天:4}]
const calculateSum=(data)=>data.reduce((res{
卡路里
饮食
}) => {
//添加/更新键为'diet'的对象
//将卡路里与之前的值相加,
//如果对象不在'res'对象中,则将卡路里添加到'0'中`
res[饮食]=(res[饮食]| 0)+卡路里;
返回res;
}, {})

console.log(calculateSum(膳食))
是否可以像Chicken=30和Soya=40那样显示而不是作为对象返回?不确定您的目的,但您可以只访问output.Chicken和output.Soyaok,谢谢您的建议。是否可以像Chicken=30和Soya=40那样显示而不是作为对象返回?不确定您的目的,但是你可以访问输出。鸡肉和输出。Soyaok,谢谢你的建议。我的答案对你有用吗?是的,谢谢我的答案对你有用吗?是的,谢谢