我有一個(gè)需要?jiǎng)h除重復(fù)記錄的數(shù)組,然后留下點(diǎn)擊次數(shù)最多的記錄我需要這個(gè)組來(lái)顯示兩條記錄,一條有 7 次點(diǎn)擊,另一條有 3 次點(diǎn)擊。我已經(jīng)將一系列冗長(zhǎng)的問(wèn)題縮小到這幾行代碼(第一個(gè) map 方法),如果到位,它會(huì)在 ngOnInit() 上將一個(gè)空對(duì)象發(fā)送回瀏覽器。這是方法:getCommissions(){ this.commissions$ = this.analyticsService.getAllCommissionData().pipe( map((commissionData: {data: Commission[]}) => {<--problem code const commissions = commissionData.data;<--problem code return _.uniqBy(commissions.sort((a, b) => b.clicks - a.clicks), commission => commission.page_url);<--problem code }), map((commissionData: {data: Commission[]}) => { const commissions = commissionData.data; return _.groupBy(commissions, commission => commission.page_type) }), catchError(err => { this.errorObject = err; console.log(this.errorObject); return throwError(err); }) ) }也值得分享課程:export class Commission { id: number; url: string; page_url: string; page_type: string; clicks: number;}和 html:<ng-container *ngIf="commissions$ | async as commissions; else loading"> <ng-container *ngFor="let page_type of ['home', 'article','statistics', 'products']"> <h4>{{ page_type | titlecase }}</h4> <p *ngIf="!commissions[page_type]">No {{ page_type }} Commissions Logged Yet</p> <ul *ngFor="let card of commissions[page_type]"> <app-click-card [card]="card"></app-click-card> </ul> </ng-container></ng-container><ng-container *ngIf="errorObject"> {{ errorObject }}</ng-container><ng-template #loading> <h4>Loading ...</h4></ng-template>我有一個(gè)例子的堆棧閃電戰(zhàn)。但是我似乎無(wú)法弄清楚為什么第一張地圖無(wú)法使用 lodash 正常運(yùn)行 - 數(shù)據(jù)設(shè)置正確并且排序不會(huì)帶來(lái)任何錯(cuò)誤,但是排序時(shí)(我猜)結(jié)果是一個(gè)空對(duì)象.有沒(méi)有人有什么建議?
嘗試使用 Lodash Angular 6 進(jìn)行排序時(shí)出現(xiàn)錯(cuò)誤
白衣非少年
2021-10-07 10:36:27