我有一个模板,工作正常但我正在尝试构建一个数组,其最终目标是获得这些值的总和。
所以我的模板给了我以下的值列表
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
时,我似乎无法构建数组。它似乎只是将每个值放入自己的数组而不是一个完整的数组?
那么我做错了什么?
谢谢
答案 0 :(得分:0)
这是一个有效的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>