javascript - Angular 7 使用 *ngfor 对数据进行分组
问题描述
现在我的角度应用程序中有这样的数据
https://stackblitz.com/edit/angular-ymmt4d
我如何按州和县对数据进行分组和排序,并显示如下表
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
data = [
{ state: 'MN', county: '1', item: 0.297 },
{ state: 'MN', county: '1', item: 0.04 },
{ state: 'CA', county: '2', item: 0.019 },
{ state: 'MN', county: '1', item: 0.0374 },
{ state: 'CA', county: '2', item: 0.037 }
]
}
<table >
<tr>
<th>State</th>
<th>County</th>
<th>Item</th>
</tr>
<ng-container *ngFor="let dataitem of data">
<tr>
<td>{{dataitem.state}}</td>
<td>{{dataitem.county}}</td>
<td>{{dataitem.item}}</td>
</tr>
</ng-container>
</table>
解决方案
如果您订购了数据,您可以使用 let i=index 并使用条件运算符检查之前的数据是否为 eauql
<ng-container *ngFor="let dataitem of data;let i=index">
<tr>
<td>{{i>0 && data[i-1].state==dataitem.state?'':dataitem.state}}</td>
<td>{{i>0 && data[i-1].county==dataitem.county?'':dataitem.county}}</td>
<td>{{dataitem.item}}</td>
</tr>
</ng-container>
推荐阅读
- javascript - 无法在模式中输入文本框并使用新状态重新渲染
- python - 使用 seaborn 创建分组条形图
- python - 如何读取 csv,在 python 中获取最大列?
- r - 用多个变量的值编码一个变量
- c - 使用 sscanf 解析 C 中的字符串
- css - Bootstrap Nav Subnav 在悬停鼠标移动时消失
- c# - 从 DataTable 绑定的 DataGridView 中删除选定的行
- simulation - Comsol 多物理场研究论文
- javascript - 未捕获的类型错误:无法读取 HTMLParagraphElement 处未定义的属性“id”。
- javascript - 无法导出组件 React Native