JavaScript Масівы : Разуменне зніжэння функцыі
сінтаксіс
arr.reduce(callbackFunction, [initialValue])
Што рабіць памяншаюць?
Паменшыць гэта функцыя, якая завесы праз масіў.
Аперацыі могуць быць выкананы на масіве з дапамогай функцыі зваротнага выкліку.
У канцы аперацыі на масіве, знізіць вяртае адно значэнне
Зніжэнне можа быць выкарыстана, напрыклад, у агульнай складанасці ў кошык
прыклад
хай обр = [1,2,3,4,5];
arr.reduce( (акумулятар, CurrentValue, currentIndex, масіў) => {
//некаторыя аперацыі;
вярнуць нешта;
});
Зваротны выклік функцыі
Функцыя зваротнага выкліку выклікаецца для кожнага элемента ў масіве, пераходзячая ў 4 аргументы, якія перадаюцца з дапамогай функцыі памяншэння.
гэтыя 4 аргументы могуць быць выкарыстаны ў нашай функцыі зваротнага выкліку.
Прымае чатыры аргументу
- акумулятар – Першы элемент масіву на першым цыкле або пачатковае значэнне, калі яны прадастаўлены. Затым вяртаецца значэнне папярэдняга цыкла.
- CurrentValue – Бягучы элемент у масіве. Запускае ад другога элемента масіва, г.зн.. прыбыццё[1], калі пачатковая значэнне аргументу не перадаецца. Калі пачатковае значэнне аргументу перадаецца, то бягучае значэнне пачынаецца з 1-га элемента ў масіве обр[0].
- currentIndex – Індэкс бягучага элемента.
- масіў – увесь масіў.
працоўны прыклад
хай обр = [1,2,3,4,5]; arr.reduce( (акумулятар, CurrentValue, currentIndex, масіў) => { console.log(`акумулятар (На 1-ым цыкле, акумулятар обр[0], то вяртаецца значэнне папярэдняга цыкла): ${акумулятар}`); console.log(`CurrentValue (Контуры праз масіў, пачынаючы з обр[1]): ${CurrentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`масіў: ${масіў}`); console.log('---'); вяртанне акумулятара + CurrentValue; } );
выхад
акумулятар (На 1-ым цыкле, акумулятар обр[0], то вяртаецца значэнне папярэдняга цыкла): 1 CurrentValue (Контуры праз масіў, пачынаючы з обр[1]): 2 currentIndex: 1 масіў: 1,2,3,4,5 --- акумулятар (На 1-ым цыкле, акумулятар обр[0], то вяртаецца значэнне папярэдняга цыкла): 3 CurrentValue (Контуры праз масіў, пачынаючы з обр[1]): 3 currentIndex: 2 масіў: 1,2,3,4,5 --- акумулятар (На 1-ым цыкле, акумулятар обр[0], то вяртаецца значэнне папярэдняга цыкла): 6 CurrentValue (Контуры праз масіў, пачынаючы з обр[1]): 4 currentIndex: 3 масіў: 1,2,3,4,5 --- акумулятар (На 1-ым цыкле, акумулятар обр[0], то вяртаецца значэнне папярэдняга цыкла): 10 CurrentValue (Контуры праз масіў, пачынаючы з обр[1]): 5 currentIndex: 4 масіў: 1,2,3,4,5 ---
Забеспячэнне пачатковага значэння
Заданне другую опцыю (InitialValue) у функцыі зніжэння выкліча InitialValue быць прыняты ў якасці аргументу акумулятара на першым цыкле.
Звярніце ўвагу, што бягучае значэнне на 1-ым цыкле цяпер пачынаецца з першага элемента масіва
працоўны прыклад
хай обр = [1,2,3,4,5]; arr.reduce( (акумулятар, CurrentValue, currentIndex, масіў) => { console.log(`акумулятар ( На 1-ым цыкле, гэта пачатковае значэнне, то вяртаецца значэнне папярэдняга цыкла): ${акумулятар}`); console.log(`CurrentValue (Контуры праз масіў, пачынаючы з обр[0]): ${CurrentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`масіў: ${масіў}`); console.log('---'); вяртанне акумулятара + CurrentValue; }, 0 );
выхад
акумулятар ( На 1-ым цыкле, гэта пачатковае значэнне, то вяртаецца значэнне папярэдняга цыкла): 0 CurrentValue (Контуры праз масіў, пачынаючы з обр[0]): 1 currentIndex: 0 масіў: 1,2,3,4,5 --- акумулятар ( На 1-ым цыкле, гэта пачатковае значэнне, то вяртаецца значэнне папярэдняга цыкла): 1 CurrentValue (Контуры праз масіў, пачынаючы з обр[0]): 2 currentIndex: 1 масіў: 1,2,3,4,5 --- акумулятар ( На 1-ым цыкле, гэта пачатковае значэнне, то вяртаецца значэнне папярэдняга цыкла): 3 CurrentValue (Контуры праз масіў, пачынаючы з обр[0]): 3 currentIndex: 2 масіў: 1,2,3,4,5 --- акумулятар ( На 1-ым цыкле, гэта пачатковае значэнне, то вяртаецца значэнне папярэдняга цыкла): 6 CurrentValue (Контуры праз масіў, пачынаючы з обр[0]): 4 currentIndex: 3 масіў: 1,2,3,4,5 --- акумулятар ( На 1-ым цыкле, гэта пачатковае значэнне, то вяртаецца значэнне папярэдняга цыкла): 10 CurrentValue (Контуры праз масіў, пачынаючы з обр[0]): 5 currentIndex: 4 масіў: 1,2,3,4,5 ---
