【问题标题】:How to count entries in a table?如何计算表中的条目?
【发布时间】:2018-06-22 23:19:33
【问题描述】:

你好我写了一个函数来计算当前时间和过去日期之间的天数。因此,如果差异大于 250,我会说 ngif = write old!

所以现在我想计算表格中的条目并将它们放入警报框中。

这是我的服务代码和 datediff 函数

this.todoService.getTodos()
  .then(td => {
    for(let i=0; i<td.todos.length;i++) {
      console.log(td.todos[i]);
      td.todos[i]["diffDays"]= this.dateDiff(new Date(),td.todos[i]["time"]);
    }
    this.todos = td.todos;
  })



private dateDiff(date1, date2) {
  const daydiff = moment(date1).diff(moment(date2), "days");
  return Math.abs(daydiff);
}

Ngif 代码

 <td><div *ngIf="todo.diffDays >250">old</div> </td>

所以现在我有一个警报框来计算表格的条目。

<div *ngIf="todos.length >= 0 " class="Box">
  <div align="center" class="alert alert-info" role="alert">
    <strong>There are {{todos.length}} Entries.</strong>
  </div>
</div>

所以现在的问题是:我应该怎么做才能计算旧条目?

谢谢!

【问题讨论】:

  • 在数组上调用过滤器,去掉不是'旧'的,新数组的长度就是你的答案
  • 你有我的代码的例子吗?我不明白。这似乎很容易,但我不明白

标签: angular typescript angular2-forms angular4-forms


【解决方案1】:

你可以做类似这样的事情:

  1. 创建函数
  2. 初始化计数器
  3. 迭代todos,如果diffDays &gt; 250,计数器加1
  4. 退货计数器

这是大概的代码(可能会有些不同,但我想你会明白主要的想法):

countOldEntries(): number {
  let counter: number = 0;
  this.todos.forEach(td => {
    td["diffDays"] > 250 ? counter++ : null;
  });
  return counter; // will return the number of 'todos' with 'diffDays > 250'
}

如果您不需要将此项目存储到新数组(例如),则上述方式是最便宜的方式之一。

【讨论】:

  • 我不明白你有确切的代码吗?我的代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 2016-06-28
  • 2015-02-26
  • 2021-10-22
  • 2017-06-06
相关资源
最近更新 更多