Этот вопрос может быть похож на В Angular2 * ngFor итерации, как вывести только уникальные значения из массива? , но у меня есть еще некоторые функции.
У меня есть список следующей формы
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
является динамическим, мы можем добавить столько деталей, сколько необходимо.