下划线模板,将列表添加到单个数组中
Underscore template, adding a list into a single array?
我有一个模板,它工作正常,但我正在尝试构建一个数组,最终目标是获得这些值的总和。
所以我的模板给了我以下值列表,
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
时,我似乎无法构建数组。它似乎只是将每个值放入自己的数组而不是总数组中?
那我做错了什么呢?
谢谢
- 如果我没有清楚地解释自己,请告诉我,我会编辑我的帖子。
这是一个工作 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>
相关文章:
- 在 laravel 4 上使用循环将数据数组存储到单个数组中
- 使用 lodash 是将数据从数组映射到单个数组的好方法
- 如何将链接附加到单个数组项
- 将培根流中的所有值合并到单个数组中
- 下划线模板,将列表添加到单个数组中
- 使用 JavaScript 将多个对象结果集的数组合并到单个数组中
- 如何旋转Javascript中表示为单个数组的4x8网格
- AngularJs过滤到单个数组元素并输出一个属性
- 将单个数组读取到存储中
- 根据id表将单个数组结果发送到打印机
- 将字符串收集到forEach内部的单个数组中
- 跟踪回调并将数据作为单个数组发送出去
- 使用lodash将重复对象合并到单个数组中
- 二维数组中单个数组的和
- 将多维数组转换为单个数组(Javascript)
- 从多个父元素中检索属性并将其存储到单个数组中
- 来自单个数组的目标对象值
- 通过单个数组递归记录javascript中所有可能的排列
- 使用javascript将单个数组转换为多维数组
- Javascript多维嵌套数组,在单个数组中排序