我有以下數據結構,需要獲取競爭者對象中各項的每個列的平均值。然後我需要把它變成一個數組數組。第一個值需要是列的平均值(四捨五入),第二個值需要是從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