2012-12-30 14 views

Odpowiedz

16

W rzeczywistości jest to funkcja tablic JavaScript reduce, a nie specyficzna dla TypeScript.

Jak opisano w the docs: Zastosuj funkcję do akumulatora i każdej wartości tablicy (od lewej do prawej), aby zmniejszyć ją do pojedynczej wartości.

Oto maszynopis przykład, który podsumowuje wartości tablicy:

total = [0, 1, 2, 3].reduce((a, b) => a + b); 
alert(total); 

Skrzynka alert pokaże 6.

+1

Ach! Dlatego nie mogłem znaleźć żadnych informacji dotyczących TypeScript. Wielkie dzięki za Twoją pomoc! – Tom

6

Z rodzajami TypeScript możesz zrobić coś takiego.

class Person { 
    constructor (public Name : string, public Age: number) {} 
} 

var list = new Array<Person>(); 
list.push(new Person("Baby", 1)); 
list.push(new Person("Toddler", 2)); 
list.push(new Person("Teen", 14)); 
list.push(new Person("Adult", 25)); 

var oldest_person = list.reduce((a, b) => a.Age > b.Age ? a : b); 
alert(oldest_person.Name); 
1

Tylko jedna uwaga oprócz innych odpowiedzi.

Jeżeli wartość początkowa jest dostarczany do zmniejszenia wtedy czasami jego typ musi być określony, a mianowicie: -

a.reduce(fn, []) 

może być

a.reduce〈string[]〉(fn, []) 

lub

a.reduce(fn, 〈string[]〉[]) 
+1

Witamy w StackOverflow: jeśli dodajesz kod, XML lub próbki danych, zaznacz je w edytorze tekstu i kliknij przycisk "próbki kodu" ({}) na pasku narzędzi edytora lub użyj Ctrl + K na klawiaturze, aby ładnie format i składnia to podkreślają! – WhatsThePoint

+1

Nie zapewnia to odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ recenzja/niskiej jakości-posts/18087822) – Melebius

+1

Przyjęta odpowiedź pomija wyjaśnienie, że akumulator można zainicjować dowolnym obiektem i dlatego też może być innego rodzaju. –