Подчеркнуть шаблон, добавить список в один массив?
У меня есть шаблон, который работает нормально, но я пытаюсь создать массив с конечной целью получения суммы этих значений.
Таким образом, мой шаблон дает мне следующий список значений,
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>