Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 将数组中多个对象的总和和平均值合并到一个数组中_Javascript_Arrays_Loops_For Loop_Object - Fatal编程技术网

Javascript 将数组中多个对象的总和和平均值合并到一个数组中

Javascript 将数组中多个对象的总和和平均值合并到一个数组中,javascript,arrays,loops,for-loop,object,Javascript,Arrays,Loops,For Loop,Object,我有一个包含多个对象的数组。我想得到它们值的平均值和总和 原始阵列示例: [[{count: 2}],[{count: 10}]] Sum array: [{count: 12}] Average array: [{count: 6}] 最终阵列: [[{count: 2}],[{count: 10}]] Sum array: [{count: 12}] Average array: [{count: 6}] 我试着用reduce。。。但是如果数组中有多个键,它就不起作用了,因为它只返回

我有一个包含多个对象的数组。我想得到它们值的平均值和总和

原始阵列示例:

[[{count: 2}],[{count: 10}]]
Sum array: [{count: 12}]
Average array: [{count: 6}]
最终阵列:

[[{count: 2}],[{count: 10}]]
Sum array: [{count: 12}]
Average array: [{count: 6}]
我试着用reduce。。。但是如果数组中有多个键,它就不起作用了,因为它只返回一个数字

你知道我会怎么做吗

for(var i = 0; i < arr.length; i++){
    let average = arr[i].reduce((a, b) => a + b) / arr.length;
    console.log(average)
}
for(变量i=0;ia+b)/arr.length;
console.log(平均值)
}

在给定多个键的情况下,您可以使用map和reduce:

const exampleArray = [{swag: 3, count: 2}, {swag: 4, count: 10}];

// converting into array with only the key you want to use
const countArray = exampleArray.map((element) => element.count); // an array with just {count: value} elements in them.

// ... now reduce like normally

在给定多个关键点的情况下,可以使用map和reduce:

const exampleArray = [{swag: 3, count: 2}, {swag: 4, count: 10}];

// converting into array with only the key you want to use
const countArray = exampleArray.map((element) => element.count); // an array with just {count: value} elements in them.

// ... now reduce like normally

您的问题不清楚,但下面是一个使用
reduce()
将多个键累积到新对象中的示例。它还跟踪遇到的每个关键点的总数,以防数组中的所有对象都具有相同的关键点。您希望结果数组采用的格式不清楚,但我已经展示了一个从
reduce()
调用的结果计算平均值的示例

const arr=[
{count1:3,count2:2},
{count1:4,count2:10},
{count1:3,count3:2}
];
const sumObj=arr.reduce((a,o)=>(
Object.entries(o.forEach)([k,v])=>(
a[k]={…a[k]?{和:0,总:0}
,a[k]['sum']+=v
,a[k]['total']+=1)
),a),{});
控制台日志(sumObj);
const averageArr=Object.entries(sumObj).map([k,{sum,total}])=>({key:k,average:sum/total}));

console.log(averageArr)您的问题不清楚,但下面是一个使用
reduce()
将多个键累积到新对象中的示例。它还跟踪遇到的每个关键点的总数,以防数组中的所有对象都具有相同的关键点。您希望结果数组采用的格式不清楚,但我已经展示了一个从
reduce()
调用的结果计算平均值的示例

const arr=[
{count1:3,count2:2},
{count1:4,count2:10},
{count1:3,count3:2}
];
const sumObj=arr.reduce((a,o)=>(
Object.entries(o.forEach)([k,v])=>(
a[k]={…a[k]?{和:0,总:0}
,a[k]['sum']+=v
,a[k]['total']+=1)
),a),{});
控制台日志(sumObj);
const averageArr=Object.entries(sumObj).map([k,{sum,total}])=>({key:k,average:sum/total}));

console.log(averageArr)展示你的研究,而不是直接询问答案。。您使用循环和reduce尝试了(代码)什么..您错过了累加器也可以容纳对象的一点。从函数返回的是累加器值。因此,如果您返回一个像
{sum:[{count:12}],avg:[{count:6}]}
这样的对象,它将是您的累加器。你可以用这个做相当复杂的事情。此外,它在回调函数之后还需要一个额外的参数,该参数将用作初始值,因此您可以防御性地处理多个键。与其直接询问答案,不如展示您的研究结果。。您使用循环和reduce尝试了(代码)什么..您错过了累加器也可以容纳对象的一点。从函数返回的是累加器值。因此,如果您返回一个像
{sum:[{count:12}],avg:[{count:6}]}
这样的对象,它将是您的累加器。你可以用这个做相当复杂的事情。此外,它在回调函数之后使用了一个附加参数,该参数将用作初始值,这样您就可以防御性地处理多个键。如果我有多个键要从中减少,这会起作用吗?我不需要地图。。。我需要减少多个键您是如何指多个键的?就像我的例子中的一个计数的多个实例或多个实际关键点一样?多个实际关键点,我想将每个关键点单独相加到同一个数组中。您可以在这里为您的用例提供一个更好的示例吗?如果我有多个关键点要减少,这会起作用吗?我不需要地图。。。我需要减少多个键您是如何指多个键的?就像在一个计数的多个实例或多个实际键中一样,如我的示例?多个实际键,我想将每个键分别相加到同一个数组中。您能在这里为您的用例提供一个更好的示例吗?