我有以下 html 片段:
<div *ngIf="calculatedValue$ | async as calculatedValue">
{{calculatedValue}}
</div>
Run Code Online (Sandbox Code Playgroud)
但如果计算值 $ 的发出值为 0(类型 = 数字),则该 div 将不会显示在 DOM 中。
正确的展示方式是什么?也许是通过将非空检查添加到 *ngIf 的方式。
所以我有一组特殊的数据:
data: [
['2022-01-17T16:29:24', 30], // these below would aggregate to 210
['2022-01-17T17:37:24', 30],
['2022-01-17T17:41:40', 30],
['2022-01-17T17:41:48', 30],
['2022-01-21T12:50:18', 30],
['2022-01-21T12:50:18', 30],
['2022-01-21T12:50:29', 30],
['2022-01-12T12:50:18', 30], // these below would aggregate to 90
['2022-01-12T12:50:18', 30],
['2022-01-12T12:50:29', 30]
]
Run Code Online (Sandbox Code Playgroud)
我需要将其减少为周数据集。我会将日期转换为一周的开始以获取周数据moment(day).startOf('isoWeek'),然后将相似日期的数据连接起来并将其减少为单个条目。
最终结果如下:
data: [
['2022-01-17T00:00:00', 210],
['2022-01-10T00:00:00', 90]
]
Run Code Online (Sandbox Code Playgroud)
但我正在寻找如何使用的建议.reduce()或任何其他更现代的解决方案,这些解决方案将在大型设备上发挥作用。现在我为此嵌套了 for 循环(除了看起来很糟糕之外)可能性能很差,因为它在同一个数组上迭代多次。一项要求是moment应该用于日期操作,请尽量避免使用Dateobj。
现在我有这样的事情:
data: [
['2022-01-17T16:29:24', 30], // these below would aggregate to 210
['2022-01-17T17:37:24', 30],
['2022-01-17T17:41:40', 30],
['2022-01-17T17:41:48', 30],
['2022-01-21T12:50:18', 30],
['2022-01-21T12:50:18', 30], …Run Code Online (Sandbox Code Playgroud)