我有以下数据结构,需要获取竞争者对象中各项的每个列的平均值。然后我需要把它变成一个数组数组。第一个值需要是列的平均值(四舍五入),第二个值需要是从0开始递增的值。对数组对象进行迭代并计算平均值
output = [[6, 0], [4, 1], [3, 2], [3, 3], [6, 4]];
结构示例:
input = {
categories: [
"Cat 1",
"Cat 2",
"Cat 3",
"Cat 4",
"Cat 5"
],
contenders: {
item1: [5, 3, 4, 4, 6],
item2: [6, 10, 4, 4, 6],
item3: [6, 3, 4, 9, 6],
item4: [8, 3, 5, 4, 6],
item5: [9, 3, 4, 4, 6],
item6: [10, 2, 7, 4, 6],
item7: [4, 3, 4, 4, 6],
item8: [1, 5, 4, 4, 6]
},
misc: [0, 3, 4, 4, 6]
};
我已经创建了一个可以为我做的平均值的函数:
function getAvg(data) {
return data.reduce(function (p, c) {
return p + c;
})/data.length;
}
但不能完全解决如何在迭代项目的值来获得我的结果。
为什么你有8个竞争者,只有5个元素在输出数组?这是令人困惑的 – gurvinder372
我想他想要的是平均列,而不是每一行(关键)。所以所有的答案都被误解了 – juvian
这是因为输出数组需要与类别匹配。 – user1513388