我正在尝试输出一个数组,如果条件成立,它将给出 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
}
最佳答案
将截止日期数组减少为计数数组:
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);
关于javascript - 在数组中创建计数元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40665836/