TypeScript ve dizi reduce fonksiyonu


TypeScript'te reduce dizi metodunun ne yaptığını biliyor musunuz? Kullanımına dair basit bir örnek verebilir misiniz?

Google'da ve TypeScript dil spesifikasyonunda araştırdım ama hiçbir iyi açıklama ve örnek bulamadım.

Cevap #1

Diğer cevaplara ek olarak sadece bir not.

Eğer reduce fonksiyonuna bir başlangıç değeri verilirse, bazen türünün belirtilmesi gerekir, örneğin:-

a.reduce(fn, [])

olmak zorunda olabilir

a.reduce<string[]>(fn, [])

veya

a.reduce(fn, <string[]>[])

Cevap #2

Aslında TypeScript'e özgü bir şey değil, JavaScript dizisi reduce fonksiyonu.

Dokümanlarda açıklandığı gibi: Bir fonksiyonu, bir toplama değişkenine ve dizinin her bir değerine (soldan sağa doğru) uygulayarak tek bir değere indirgeyin.

İşte bir dizinin değerlerini toplayan bir örnek:

let total = [0, 1, 2, 3].reduce((accumulator, currentValue) => accumulator + currentValue);
console.log(total);

Parça 6 üretmelidir.

Cevap #3

TypeScript generikleri ile bunu gibi bir şey yapabilirsiniz.

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

Cevap #4

Reduce() ...

  • reduce() yöntemi diziyi tek bir değere indirger.
  • reduce() yöntemi, verilen işlevi dizinin her bir değeri için (soldan sağa) uygular.
  • Fonksiyonun dönüş değeri bir akümülatörde (sonuç/toplam) saklanır.

O, ...

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

Değiştir

let array=[1,2,3];
let answer=arrays.reduce((acc,val)=>acc+val);

Ayrıca içinde kullanabilirsiniz

  1. maksimumu bul
    let array=[5,4,19,2,7];
    function findMax(acc,val)
    {
     if(val>acc){
       acc=val; 
     }
    }

    let biggest=arrays.reduce(findMax); // 19
  1. Tekrarlanmayan bir eleman bulun.
    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

İlgili makaleler