javascript - 在数组中创建计数元素的数组

标签 javascript arrays

我正在尝试输出一个数组,如果条件成立,它将给出 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/

相关文章:

java - 数组和 ArrayLists - 优点和缺点

java - 什么更快 : to create a new array or iterate through existing?

javascript - 将变量设置为在循环中仅执行一次的函数的结果。为什么?

javascript - 读取列表中特定元素的数据

javascript - JavaScript test()方法语法错误?

c++ - 打印结构双端队列中的第一个数组

javascript - Bootstrap 登录窗口验证火灾

javascript - Discord 仅识别 discord.js 中的 "ping"命令

java - 在不启动接收 Activity 的情况下将数据传递给 Activity (Android)

javascript - 数组和对象变量的存储和 'weight'