我正在尝试将数据库中的每个值添加到自身,就像我在数据库中的值名称是task_time我想将 task_time 添加到 task_time ( totalTime = task_time + task_time + ... + taks_time )
There is how I get data.
function getEndTasks() {
$http.get('db_files/endTasksDB.php').then(function(response) {
$scope.dates = response.data;
console.log($scope.dates);
})
}
控制台日志看起来像
数组[10] 0:对象1:对象2:对象3:对象4:对象5: 对象6:对象7:对象8:对象9:对象
对象0:
Object
$$hashKey:"object:60"
deadline:"2017-02-28"
dept:"test"
id:"1"
priority:null
status:"Closed"
task:"test"
task_end:"2017-03-02 10:57:51"
task_start:"2017-02-27 14:45:53"
task_time:"83"
total_time:"null"
username:"Nelson"
这就是我的尝试。
$scope.total = response.data.map(function(item) {
var totalTime = 0;
for (var i=0; i<(item.task_time).length;i++){
totalTime = item.task_time[i];
totalTime += totalTime;
item.total_time = totalTime;
console.log("total time: " +item.total_time);
}
return item;
})
我没有任何错误,但控制台日志显示如下:
总时间:88总时间:33总时间:99总时间:00等
和我想要显示它的表格:
<table md-table>
<thead md-head md-order="sort.order">
<tr md-row>
<th md-column>Spółka</th>
<th md-column>Łączny czas</th>
</tr>
</thead>
<tbody md-body>
<tr md-row md-select="totalTime" md-on-select="" md-auto-select ng-repeat="totalTime in total | orderBy:sort.order | filter:search">
<td md-cell>{{ totalTime.dept }}</td>
<td md-cell>{{ totalTime.total_time }} godzin</td>
</td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
好的,有几个问题。首先,您收到的数据如下所示:(简化)
var data = [{
dept:"test",
task_time:"83"
},{
dept:"test",
task_time:"41"
},{
dept:"other",
task_time:"10"
}];
现在,如果你想计算所有任务花费的时间,你会做:
var total = 0;
angular.forEach(data, function(item) {
total += parseFloat(item.task_time);
});
console.log(total) //will output 134
如果要根据部门总和总计,可以将它们存储在如下对象中:
var totalPerDept = {};
angular.forEach(data, function(item) {
if(!totalPerDept[item.dept]) {
totalPerDept[item.dept] = 0;
}
totalPerDept[item.dept] += parseFloat(item.task_time);
});
然后在视图中你会这样显示:
<div ng-repeat="d in data">
Department: {{d.dept}} | Total in this dept: {{totalPerDept[d.dept]}}
</div>
如您所见,您使用部门名称作为索引来访问其他对象的属性。
无论如何,正如我在评论中所说的那样,在查询中简单地完成所有这些数学运算会更容易,并且很好地完成了这一切。