2016-11-17 5 views
0

Я пытаюсь вывести массив, который даст мне значения каждого счета из arr, если условия сохраняются.Создание массива элементов count в массиве

Пример:

//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 
} 
+0

что ваши сроки массива? – Geeky

+0

Каковы ваши условия? Код в этом отношении не очень полезен, потому что среднее условие 'if' всегда истинно при выполнении, а внутреннее условие' if' никогда не является истинным при выполнении. – trincot

+0

Пожалуйста, изучите инструкции с помощью ';'. Вы можете получить непредвиденные ошибки, если вы этого не сделаете. – Barmar

ответ

0

Я думаю, что это то, что вы ищете. Вы просто хотите подсчитать количество экземпляров, каждое значение в 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));

+0

Спасибо Очень много теперь яснее для меня. –

1

Снизить массив сжатых сроков массива отсчетов:

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);

Смежные вопросы