JavaScript Զանգվածները : Հասկանալով, որ կրճատել գործառույթը

Շարահյուսություն

arr.reduce(callbackFunction, [initialValue])

Ինչ է կրճատել անել?

Կրճատել մի գործառույթ, որը loops միջոցով զանգված.

Գործողությունները կարող են իրականացվել է զանգված միջոցով Հետկանչի գործառույթը.

Վերջում է գործողությունների վրա զանգված, նվազեցնել Վերադարձնում է մեկ արժեք

Կրճատել կարող է օգտագործվել, օրինակ, ընդամենի զամբյուղը

Օրինակ

  թող հայերեն (Armenian) = [1,2,3,4,5];
  arr.reduce( (կոլեկտոր, currentValue, currentIndex, զարդ) => { 
      //որոշ գործառնություններ;
      վերադառնալ մի բան;
  });

 

Հետզանգը գործառույթը

Որ ետկանչի գործառույթ վկայակոչվել է յուրաքանչյուր տարրի զանգված, անցնում է 4 փաստարկները, որոնք անցել է ըստ նվազեցնելու գործառույթը.

Սրանք 4 փաստարկները, ապա կարող է օգտագործվել մեր Հետկանչի գործառույթը.

Տեւում է չորս փաստարկները

  1. կոլեկտոր – Առաջին տարրը զանգվածի առաջին հանգույց կամ սկզբնական արժեքով, եթե մատակարարված. Այնուհետեւ վերադարձել արժեքը նախորդ հանգույց.
  2. currentValue – Ներկայիս տարր է զանգված. Սկսվում է երկրորդ տարրի array IE. հայերեն (Armenian)[1], երբ նախնական արժեքը փաստարկը չի անցել. Եթե ​​նախնական արժեքը փաստարկը անցել, ապա ընթացիկ արժեքը սկսվում է 1-ին տարր է array ARR[0].
  3. currentIndex – Այդ ցուցանիշը ընթացիկ տարրի.
  4. զարդ – Ամբողջ զանգվածը.

աշխատանքային օրինակ

թող հայերեն (Armenian) = [1,2,3,4,5];

arr.reduce(
  (կոլեկտոր, currentValue, currentIndex, զարդ) => {
    console.log(`կոլեկտոր (1-ին հանգույց, կոլեկտոր է հայերեն (Armenian)[0], ապա դա վերադարձվում արժեքը նախորդ հանգույց): ${կոլեկտոր}`);
    console.log(`currentValue (Loops միջոցով զանգված, սկսած ARR[1]): ${currentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`զանգված: ${զարդ}`);
    console.log('---');
    վերադարձը կոլեկտոր + currentValue;
  }
);

արտադրանք

կոլեկտոր (1-ին հանգույց, կոլեկտոր է հայերեն (Armenian)[0], ապա դա վերադարձվում արժեքը նախորդ հանգույց): 1
currentValue (Loops միջոցով զանգված, սկսած ARR[1]): 2
currentIndex: 1
զարդ: 1,2,3,4,5
---
կոլեկտոր (1-ին հանգույց, կոլեկտոր է հայերեն (Armenian)[0], ապա դա վերադարձվում արժեքը նախորդ հանգույց): 3
currentValue (Loops միջոցով զանգված, սկսած ARR[1]): 3
currentIndex: 2
զարդ: 1,2,3,4,5
---
կոլեկտոր (1-ին հանգույց, կոլեկտոր է հայերեն (Armenian)[0], ապա դա վերադարձվում արժեքը նախորդ հանգույց): 6
currentValue (Loops միջոցով զանգված, սկսած ARR[1]): 4
currentIndex: 3
զարդ: 1,2,3,4,5
---
կոլեկտոր (1-ին հանգույց, կոլեկտոր է հայերեն (Armenian)[0], ապա դա վերադարձվում արժեքը նախորդ հանգույց): 10
currentValue (Loops միջոցով զանգված, սկսած ARR[1]): 5
currentIndex: 4
զարդ: 1,2,3,4,5
---

 

Ապահովելով նախնական արժեքը

Հստակեցնելով երկրորդ պարամետրը (initialValue) ի նվազեցնելու գործառույթը կառաջացնի initialValue է անցել, քանի որ մարտկոցների փաստարկ առաջին հանգույց.

Նկատի ունեցեք, որ ներկայիս արժեքը 1-ին հանգույց այժմ սկսվում է առաջին տարրի զանգված

աշխատանքային օրինակ

  թող հայերեն (Armenian) = [1,2,3,4,5];

  arr.reduce(
  (կոլեկտոր, currentValue, currentIndex, զարդ) => {
    console.log(`կոլեկտոր ( 1-ին հանգույց, Սա նախնական արժեքը, ապա վերադարձել արժեքը նախորդ հանգույց): ${կոլեկտոր}`);
    console.log(`currentValue (Loops միջոցով զանգված, սկսած ARR[0]): ${currentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`զանգված: ${զարդ}`);
    console.log('---');
    վերադարձը կոլեկտոր + currentValue;
  }, 0
);

արտադրանք

կոլեկտոր ( 1-ին հանգույց, Սա նախնական արժեքը, ապա վերադարձել արժեքը նախորդ հանգույց): 0
currentValue (Loops միջոցով զանգված, սկսած ARR[0]): 1
currentIndex: 0
զարդ: 1,2,3,4,5
---
կոլեկտոր ( 1-ին հանգույց, Սա նախնական արժեքը, ապա վերադարձել արժեքը նախորդ հանգույց): 1
currentValue (Loops միջոցով զանգված, սկսած ARR[0]): 2
currentIndex: 1
զարդ: 1,2,3,4,5
---
կոլեկտոր ( 1-ին հանգույց, Սա նախնական արժեքը, ապա վերադարձել արժեքը նախորդ հանգույց): 3
currentValue (Loops միջոցով զանգված, սկսած ARR[0]): 3
currentIndex: 2
զարդ: 1,2,3,4,5
---
կոլեկտոր ( 1-ին հանգույց, Սա նախնական արժեքը, ապա վերադարձել արժեքը նախորդ հանգույց): 6
currentValue (Loops միջոցով զանգված, սկսած ARR[0]): 4
currentIndex: 3
զարդ: 1,2,3,4,5
---
կոլեկտոր ( 1-ին հանգույց, Սա նախնական արժեքը, ապա վերադարձել արժեքը նախորդ հանգույց): 10
currentValue (Loops միջոցով զանգված, սկսած ARR[0]): 5
currentIndex: 4
զարդ: 1,2,3,4,5
---