Javascript 从嵌套的对象数组中获取总和

Javascript 从嵌套的对象数组中获取总和,javascript,arrays,reactjs,loops,object,Javascript,Arrays,Reactjs,Loops,Object,下面是一组对象。如您所见,每个对象中都有一个名为count的嵌套对象。我想得到总的关闭,验证和分析 例如,关闭的总数为23,验证为3,分析为20 我试过这种方法,但不起作用。例如,获取已关闭的 使用要合计的嵌套特性的键将数据减少到对象中。在reduce回调函数中,分解totals属性和嵌套count属性,并计算总和 常数数据=[ { 人名:973567318, 名字:其他, 姓氏:, 计数:{ 闭馆:7, 核实:3, 分析:19 } }, { 人名:1514903899, 名字:Yatish,

下面是一组对象。如您所见,每个对象中都有一个名为count的嵌套对象。我想得到总的关闭,验证和分析

例如,关闭的总数为23,验证为3,分析为20

我试过这种方法,但不起作用。例如,获取已关闭的


使用要合计的嵌套特性的键将数据减少到对象中。在reduce回调函数中,分解totals属性和嵌套count属性,并计算总和

常数数据=[ { 人名:973567318, 名字:其他, 姓氏:, 计数:{ 闭馆:7, 核实:3, 分析:19 } }, { 人名:1514903899, 名字:Yatish, 姓:帕特尔, 计数:{ 闭馆时间:16, 分析:1 } } ]; const totalCount=data.reduce{ 关闭 分析 验证 }, { 计数 } => { 关闭:关闭+计数?关闭| | 0, 分析:分析+计数?.Analyze | | 0, 验证:验证+计数?验证| | 0, }, { 截止时间:0, 分析:0, 验证:0, };
console.logtotalCount 使用要合计的嵌套特性的键将数据减少到对象中。在reduce回调函数中,分解totals属性和嵌套count属性,并计算总和

常数数据=[ { 人名:973567318, 名字:其他, 姓氏:, 计数:{ 闭馆:7, 核实:3, 分析:19 } }, { 人名:1514903899, 名字:Yatish, 姓:帕特尔, 计数:{ 闭馆时间:16, 分析:1 } } ]; const totalCount=data.reduce{ 关闭 分析 验证 }, { 计数 } => { 关闭:关闭+计数?关闭| | 0, 分析:分析+计数?.Analyze | | 0, 验证:验证+计数?验证| | 0, }, { 截止时间:0, 分析:0, 验证:0, }; console.logtotalCount const byPerson=[ { 人名:973567318, 名字:其他, 姓氏:, 计数:{ 闭馆:7, 核实:3, 分析:19 } }, { 人名:1514903899, 名字:Yatish, 姓:帕特尔, 计数:{ 闭馆时间:16, 分析:1 } } ]; const sum=byPerson.reduceAg,item=>{ ['Closed','Verify','Analyze'].forEachf=>agg[f]+=item.count[f]|0; 返回agg; },{关闭:0,验证:0,分析:0}; console.logsum const byPerson=[ { 人名:973567318, 名字:其他, 姓氏:, 计数:{ 闭馆:7, 核实:3, 分析:19 } }, { 人名:1514903899, 名字:Yatish, 姓:帕特尔, 计数:{ 闭馆时间:16, 分析:1 } } ]; const sum=byPerson.reduceAg,item=>{ ['Closed','Verify','Analyze'].forEachf=>agg[f]+=item.count[f]|0; 返回agg; },{关闭:0,验证:0,分析:0};
console.logsum 在这种情况下,您甚至不需要reduce,可以使用简单的循环以及迭代Object.keys

const byPerson=[ { 人名:973567318, 名字:其他, 姓氏:, 计数:{ 闭馆:7, 核实:3, 分析:19 } }, { 人名:1514903899, 名字:Yatish, 姓:帕特尔, 计数:{ 闭馆时间:16, 分析:1 } } ]; const sum={Closed:0,Verify:0,Analyze:0} byPerson.forEach{count}=>{ Object.keysum.forEachk=>sum[k]+=count[k]|0 };
console.logsum 在这种情况下,您甚至不需要reduce,可以使用简单的循环以及迭代Object.keys

const byPerson=[ { 人名:973567318, 名字:其他, 姓氏:, 计数:{ 闭馆:7, 核实:3, 分析:19 } }, { 人名:1514903899, 名字:Yatish, 姓:帕特尔, 计数:{ 闭馆时间:16, 分析:1 } } ]; const sum={Closed:0,Verify:0,Analyze:0} byPerson.forEach{count}=>{ Object.keysum.forEachk=>sum[k]+=count[k]|0 };
console.logsum;Resse-我运行了代码段,但它给了我错误。@ArenTrot Ack,TITY按钮更改了语法。很抱歉,它现在应该被修复了。RESE-当我使用此代码时,它告诉我data.reduce不是一个函数它返回23,20,0,而不是23,20,3@ArenTrot我在代码段中命名了数组数据,它在您的实际代码中可能有不同的名称。RESE-我运行了代码段,但它给我带来了错误。@ArenTrot Ack,TITY按钮更改了语法。很抱歉,它现在应该被修复了。RESE-当我使用此代码时,它告诉我data.reduce不是一个函数它返回23,20,0,而不是23,20,3@ArenTrot我在代码段中命名了数组数据,它 实际代码中可能有不同的名称。
"byPerson": [
      {
        "personId": "973567318",
        "firstName": "Others",
        "lastName": "",
        "count": {
          "Closed": 7,
          "Verify": 3,
          "Analyze": 19
        }
      },
      {
        "personId": "1514903899",
        "firstName": "Yatish",
        "lastName": "Patel",
        "count": {
          "Closed": 16,
          "Analyze": 1
        }
      }
 ]

cosnt result = data.reduce((a, b) => ({"Closed": a.count["Closed"] + b.count["Closed"]}));