【发布时间】:2019-08-04 22:33:29
【问题描述】:
这个问题可能类似于In Angular2 *ngFor iteration, how do I output only unique values from the array?,但我的问题是有更多的功能。
我有以下表格的列表
let studentsList = [{
name:'A',
rollNo:1,
mark:10
},
{
name:'B',
rollNo:2,
mark:30
},
{
name:'C',
rollNo:3,
mark:40
},
{
name:'A',
rollNo:1,
mark:50
}
]
目标是显示来自studentList 的唯一名称和标记,并像这样从中找到唯一名称。
A 10
B 30
C 40
如果名称重复,则添加标记并显示。
A 60
B 30
C 40
我可以像这样过滤唯一的名字
import { Pipe, PipeTransform } from '@angular/core';
import * as _ from 'lodash';
@Pipe({
name: 'unique',
pure: false
})
export class UniquePipe implements PipeTransform {
transform(value: any): any{
if(value!== undefined && value!== null){
return _.uniqBy(value, 'name');
}
return value;
}
}
然后在html中
<ul>
<li *ngFor="let student of studentList| unique">
{{student .name}}
</li>
</ul>
编辑
studentsList 是动态的,我们可以根据需要添加任意数量的详细信息。
【问题讨论】:
标签: javascript arrays typescript angular5 lodash