Finn minste og største element i array i Angular og Typescript
Hei alle sammen, jeg har et array og jeg trenger å utføre forskjellige operasjoner som sum, total, gjennomsnitt. Alle disse tre er oppnådd. Nå trenger jeg å finne minimums- og maksimumsverdien i arrayet. Jeg sitter fast, nedenfor er koden.
Nedenfor er TS-delen
people: Array<number> = [1, 2, 3, 4, 5];
total: number = 0;
arrayLength: number = this.people.length;
average: number = 0;
sum() {
for (var i in this.people) { this.total += this.people[i]; }
}
ngOnInit() {
this.sum();
this.average = (this.total / this.arrayLength);
}
Nedenfor er HTML-delen
<span *ngFor="let p of people" style="font-size:18px">{{p}} </span><br><br>
<button >Quantity</button> = {{arrayLength}}<Br><br>
<button >Average</button> = {{average}}<Br><br>
<button >Sum</button> <span *ngIf="sumShow"> = {{total}}</span><Br><br>
Svar #1
bruk reduce for dette.
Demo på Stackblitz
sum() {
this.total = this.people.reduce((a, b)=>a + b);
}
ngOnInit() {
this.sum();
this.max = this.people.reduce((a, b)=>Math.max(a, b));
this.min = this.people.reduce((a, b)=>Math.min(a, b));
this.average = (this.total / this.arrayLength);
}
<span *ngFor="let p of people" style="font-size:18px">{{p}} </span><br><br>
<button >Quantity</button> = {{arrayLength}}<Br><br>
<button >Average</button> = {{average}}<Br><br>
<button >Sum</button> <span > = {{total}}</span><Br><br>
<button >Max</button> <span > = {{max}}</span><Br><br>
<button >Min</button> <span > = {{min}}</span><Br><br>
Svar #2
Bruk Math.max og Math.min kombinert med spredningsoperatoren.
get max() {
return Math.max(...this.people);
}
get min() {
return Math.min(...this.people);
}
