В тази статия ще разгледаме метода за намаляване на масива и ще извършим верижно свързване на този метод и филтърния метод. Щракнете тук, за да разгледате метода на филтърния масив, в случай че не сте запознати с него.

Използваме метода за намаляване, за да стесним всички елементи на масива до една единствена стойност. Например, може да искаме да намерим сумата от всички елементи в масив.

Разгледайте следния масив:

Параметрите, приети от метода за намаляване на масива, са: акумулатор, елемент, индекс и самият масив в този ред. Акумулаторът натрупва върнатите стойности на обратното извикване. Важно е да се отбележи, че акумулаторът трябва да има начална стойност, която се декларира извън тялото на функцията.

Нека да разгледаме как трябва да предадем тези 4 параметъра, в допълнение към изчисляването на сумата от всички елементи в масива:

В горния пример искаме да започнем да броим от 0, така че стойността на акумулатора е зададена на 0.

Следното ще бъде изходът на конзолата:

Следното е резултатът от върнатата стойност на метода за намаляване на конзолата:

Наистина, когато добавите всички елементи от масива myNumbers, получавате общата сума като 1035.

Сега може би се чудите защо бихте избрали този метод пред for цикъла? Нека започнем, като напишем for цикъл, за да изчислим сумата от всички елементи в нашия myNumbers масив.

И изходът на конзолата ще бъде:

Можете да забележите, че с цикъла for имаме нужда от външна променлива (count) за разлика от метода за намаляване. Това е добре, ако работите с един цикъл, но може да стане много объркващо, ако работим с множество цикли за извършване на множество операции. Методите на масива напълно избягват допълнителната променлива (брой), когато работят върху множество цикли, които изпълняват различни операции.

Сега, след като разгледахме метода за редуциране на масива, нека извършим верижно свързване на филтъра и метода за редуциране на масива.

Да кажем, че от нашия масив (myNumbers) искаме да намерим сбора на всички положителни числа в масива. Следното е как бихме го направили:

Изходът на конзолата ще бъде:

Наистина, когато добавите всички положителни числа от масива myNumbers, получавате общата сума като 1285.