我正在玩一個數據集,用於統計某人在某個小時內提交的提交數。我可以一個人做了一個承諾,他們多少次犯下的時間創建一個數組對象:使用下劃線填充數組中缺少的對象
[ { hour: '6', commits: 2 },
{ hour: '7', commits: 6 },
{ hour: '8', commits: 6 },
{ hour: '9', commits: 4 },
{ hour: '10', commits: 4 },
{ hour: '11', commits: 6 },
{ hour: '12', commits: 18 },
{ hour: '13', commits: 18 },
{ hour: '14', commits: 14 },
{ hour: '15', commits: 30 },
{ hour: '16', commits: 24 },
{ hour: '17', commits: 18 },
{ hour: '18', commits: 24 },
{ hour: '19', commits: 22 },
{ hour: '20', commits: 6 },
{ hour: '21', commits: 16 },
{ hour: '22', commits: 8 } ]
如果我堅持試圖填充缺失小時。所以在上面的例子中,我需要包括沒有提交任務的時間。我一整天都在使用0-24範圍。這是我希望得到的結果:
[
{ hour: '0', commits: 0 },
{ hour: '1', commits: 0 },
{ hour: '2', commits: 0 },
{ hour: '3', commits: 0 },
{ hour: '4', commits: 0 },
{ hour: '5', commits: 0 },
{ hour: '6', commits: 2 },
{ hour: '7', commits: 6 },
{ hour: '8', commits: 6 },
{ hour: '9', commits: 4 },
{ hour: '10', commits: 4 },
{ hour: '11', commits: 6 },
{ hour: '12', commits: 18 },
{ hour: '13', commits: 18 },
{ hour: '14', commits: 14 },
{ hour: '15', commits: 30 },
{ hour: '16', commits: 24 },
{ hour: '17', commits: 18 },
{ hour: '18', commits: 24 },
{ hour: '19', commits: 22 },
{ hour: '20', commits: 6 },
{ hour: '21', commits: 16 },
{ hour: '22', commits: 8 },
{ hour: '23', commits: 0 },
{ hour: '24', commits: 0 }
]
這裏是我用來創建這些對象的功能:
var getAuthorAndHourCounts = (groupedByAuthor) => {
var result = _.map(groupByAuthor, (value, key, list) => {
var author = key;
var hours = _.countBy(value, 'hour');
var commitHourList = [];
_.each(hours, (v,k) => {
var obj = {};
obj.hour = k;
obj.commits = v;
commitHourList.push(obj);
});
return {
person: author,
times: commitHourList
};
});
return result;
};
如何添加缺失的時代?我正在考慮創建一個列表(0-24),然後查看一個小時是否不在列表中,以便將零值添加到該對象中。不知道如何完成。
只是一個方面說明的最高效的方式:你意識到列表中有25小時,而不是24小時:0小時和24小時之間有什麼區別? – Wh1T3h4Ck5
謝謝你接受。我打算使用24小時。 0將是午夜,1將是上午1點等。 – AldoTheApache