首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数组中创建计数元素数组

在数组中创建计数元素数组
EN

Stack Overflow用户
提问于 2016-11-17 22:01:09
回答 2查看 77关注 0票数 0

我试图输出一个数组,如果条件成立,它将从arr中给出每个计数的值。

示例:

代码语言:javascript
复制
//tasksTypes([1, 2, 4, 2, 10, 3, 1, 4, 5, 4, 9, 8], 1)  [2, 8, 2]

我的代码:

代码语言:javascript
复制
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
}   
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-17 22:09:33

我想这就是你要找的。您只想计算deadlines中每个值符合特定条件的实例数量,这是基于day的。

代码语言:javascript
复制
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));

票数 0
EN

Stack Overflow用户

发布于 2016-11-17 22:32:34

将截止日期数组缩减为计数数组:

代码语言:javascript
复制
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);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40665836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档