我在排序对象数组时遇到问题
对象看起来像
我想要做的就是让* ngFor循环按group_id属性对其进行排序。
component.html
<ul *ngFor="let list of selectgid | groupid">
<li>{{list}}</li>
</ul>
pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'groupid'
})
export class GroupidPipe implements PipeTransform {
transform(array: Array<any>): Array<any> {
if (array !== undefined) {
array.sort((a: any, b: any) => {
if (a.group_id < b.group_id) {
return -1;
} else if (a.group_id > b.group_id) {
return 1;
} else {
return 0;
}
});
}
return array;
}
}
我尝试实现此代码,但似乎无法正常工作。我的代码有什么问题,或者有什么需要做的?
答案 0 :(得分:0)
假设selectgid是包含图像中所示值的对象数组,请尝试对.ts文件中ngOnInit()方法内的数据进行排序,如下所示:
this.selectgid.sort((a, b) => {
if (a.group_id < b.group_id) {
return -1;
} else if (a.group_id > b.group_id) {
return 1;
} else {
return 0;
}
})
在.html页面上,您需要这样指定Object的键:
<ul *ngFor="let list of selectgid">
<li>{{list.group_id}}</li>
<li>{{list.permission_list}}</li>
</ul>