Savez-vous ce que fait la fonction array reduce
dans TypeScript? Pouvez-vous fournir un exemple simple d'utilisation?
Je recherche sur Google et spécification du langage TypeScript mais je n'ai pas trouvé d'explication et d'exemples décents.
Il s'agit en fait de la fonction de tableau JavaScript reduce
plutôt que d'être quelque chose de spécifique à TypeScript.
Comme décrit dans la documentation : Appliquer une fonction contre un accumulateur et chaque valeur du tableau (de gauche à droite) afin de la réduire à une seule valeur .
Voici un exemple qui résume les valeurs d'un tableau:
let total = [0, 1, 2, 3].reduce((accumulator, currentValue) => accumulator + currentValue);
alert(total);
La boîte alert
affichera 6
.
Juste une note en plus des autres réponses.
Si une valeur initiale est fournie pour réduire, alors parfois son type doit être spécifié, à savoir: -
a.reduce(fn, [])
peut être
a.reduce<string[]>(fn, [])
ou
a.reduce(fn, <string[]>[])
Avec les génériques TypeScript, vous pouvez faire quelque chose comme ça.
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);
Réduire () est ..
C'était ..
let array=[1,2,3];
function sum(acc,val){ return acc+val;} // => can change to (acc,val)=>acc+val
let answer= array.reduce(sum); // answer is 6
Remplacer par
let array=[1,2,3];
let answer=arrays.reduce((acc,val)=>acc+val);
Vous pouvez également utiliser dans
let array=[5,4,19,2,7];
function findMax(acc,val)
{
if(val>acc){
acc=val;
}
}
let biggest=arrays.reduce(findMax); // 19
arr = [1, 2, 5, 4, 6, 8, 9, 2, 1, 4, 5, 8, 9]
v = 0
for i in range(len(arr)):
v = v ^ arr[i]
print(value) //6