我试图输出一个数组,如果条件成立,它将从arr中给出每个计数的值。
示例:
//tasksTypes([1, 2, 4, 2, 10, 3, 1, 4, 5, 4, 9, 8], 1) [2, 8, 2]我的代码:
function tasksTypes(deadlines, day) {
var list= [];
var today = 0;
var upcoming = 0;
var later = 0;
for(var i=0; i<deadlines.length; i++){
if(deadlines[i] <= day){
today += today
list.push(today)
if(deadlines[i] <= day + 7){
upcoming += upcoming
list.push(upcoming)
if(deadlines[i] > day + 7){
later += later
list.push(later)
}
}
}
}
return list
} 发布于 2016-11-17 22:09:33
我想这就是你要找的。您只想计算deadlines中每个值符合特定条件的实例数量,这是基于day的。
function tasksTypes(deadlines, day) {
var today = 0;
var upcoming = 0;
var later = 0;
for(var i = 0; i < deadlines.length; ++i) {
if(deadlines[i] <= day)
today++;
else if(deadlines[i] <= day + 7)
upcoming++;
else
later++;
}
return [today, upcoming, later];
}
console.log(tasksTypes([1, 2, 4, 2, 10, 3, 1, 4, 5, 4, 9, 8], 1));
发布于 2016-11-17 22:32:34
将截止日期数组缩减为计数数组:
function tasksTypes(deadlines, day) {
return deadlines.reduce(function(counts, deadline) {
var index = deadline <= day ? 0 : (deadline <= day + 7 ? 1 : 2);
counts[index]++;
return counts;
}, [0, 0, 0]);
}
var result = tasksTypes([1, 2, 4, 2, 10, 3, 1, 4, 5, 4, 9, 8], 1);
console.log(result);
https://stackoverflow.com/questions/40665836
复制相似问题