Подчеркнуть шаблон, добавить список в один массив?

У меня есть шаблон, который работает нормально, но я пытаюсь создать массив с конечной целью получения суммы этих значений.

Таким образом, мой шаблон дает мне следующий список значений,

    10
    23
    14
    1

т. е. для каждого значения в моей базе данных, которое отлично зацикливается. Но я хочу итого из этого списка, который я сделал в строке, но это касается каждой строки в базе данных. Так что моя цель была (и, пожалуйста, скажите мне, если есть лучший способ сделать это) состояла в том, чтобы собрать это в один массив, поместив каждое значение в новый массив в шаблоне, затем добавив массив, давая мне большой Всего.

Так что мой шаблон выглядит так,

<script type="text/template" id="TimesheetData">
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.jobtitle  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.mon  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.tue  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.wed  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.thu  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.fri  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.sat  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.sun  %>">

  <span>Weekly total : <span class="TimeSheetWeekly<%= Timesheetrow.index %>"></span></span>

<%
    var WeeklyArray = [Timesheetrow.mon, Timesheetrow.tue, Timesheetrow.wed, Timesheetrow.thu, Timesheetrow.fri, Timesheetrow.sat, Timesheetrow.sun];
    var WeeklyTotals = 0;

    for (var i = 0; i < WeeklyArray.length; i++) {
        WeeklyTotals += WeeklyArray[i] << 0;
    }

    _.defer(function(){ 
        var WeeklyTotalTag = '.TimeSheetWeekly'+ Timesheetrow.index;
        $( WeeklyTotalTag ).html(WeeklyTotals); 
    }) 


%>

</script> 

Но когда я пытаюсь использовать .zip или же .map Я не могу построить массив. Кажется, что каждое значение помещается в отдельный массив, а не в общий массив?

Так что я делаю не так?

Спасибо

  • Пожалуйста, дайте мне знать, если я не объяснил четко, я буду редактировать свой пост.

1 ответ

Вот рабочий jsfiddle

Я использовал Reduce для вычисления суммы массива.

<%= _.reduce(_.values(_.pick(Timesheetrow, 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun')), function(a, b) {return a + b}, 0) %>

Полный шаблон:

<script type="text/template" id="TimesheetData">
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.jobtitle  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.mon  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.tue  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.wed  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.thu  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.fri  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.sat  %>">        
  <input type="type" name="data[Timesheetrow][<%= Timesheetrow.index %>][jobtitle]" value="<%= Timesheetrow.sun  %>">

  <span>Weekly total : <span class="TimeSheetWeekly<%= Timesheetrow.index %>">
    <%= _.reduce(_.values(_.pick(Timesheetrow, 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun')), function(a, b) {return a + b}, 0) %>
  </span></span>

</script> 
Другие вопросы по тегам