Domanda TypeScript e array riducono la funzione


Sai cosa fa array? reduce funzione fai in TypeScript? Potete fornire un semplice esempio di utilizzo?

Cerco su Google e Specifica del linguaggio TypeScript ma non è riuscito a trovare alcuna spiegazione ed esempi decenti.


17
2017-12-30 01:25


origine


risposte:


In realtà è l'array JavaScript reduce funzione piuttosto che essere qualcosa di specifico per TypeScript.

Come descritto in i documenti: Applicare una funzione contro un accumulatore e ogni valore dell'array (da sinistra a destra) in modo da ridurlo a un singolo valore.

Ecco un esempio di TypeScript che riassume i valori di un array:

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

Il alert la scatola mostrerà 6.


22
2017-12-30 02:00



Con i generici di TypeScript puoi fare qualcosa di simile.

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);

6
2017-09-12 13:32



Solo una nota in aggiunta alle altre risposte.

Se viene fornito un valore iniziale da ridurre, a volte il suo tipo deve essere specificato, vale a dire: -

a.reduce(fn, [])

potrebbe essere necessario

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

o

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

3
2017-11-24 13:54