Page 122 - 6105
P. 122

Найпростіше  зрозуміти  роботу  методу  reduce  на  прикладі.  Наприклад,  в

               якості «згортки» ми хочемо отримати суму всіх елементів масиву.


                      Ось рішення в один рядок:

                      var arr = [1, 2, 3, 4, 5]

                      // для кожного елемента масиву запустити функцію,
                      //  проміжний  результат  передавати  першим  аргументом


               далі
                      var result = arr.reduce (function (sum, current) {


                        return sum + current;
                      }, 0);

                      alert (result); // 15



                      Розберемо біль детально роботу даного коду.  При першому запуску  sum  -

               початкове  значення,  з  якого  починаються  обчислення,  дорівнює  нулю  (другий

               аргумент  reduce).  Спочатку  анонімна  функція  викликається  з  цим  початковим

               значенням і першим елементом масиву, результат запам'ятовується і передається в

               наступний  виклик,  вже  з  другим  аргументом  масиву,  потім  нове  значення  бере

               участь в обчисленнях з третім аргументом і так далі. Подамо кожен крок роботи

               програми  у  вигляді  таблиці  де  кожен  рядок  –  виклик  функції  на  черговому

               елементі масиву:


                      sum current результат
                      перший виклик 0 1 + 1


                      другий виклик 1 2 3
                      третій виклик 3 3 6

                      четвертий виклик 6 4 10

                      п'ятий виклик 10 5 15

                      Як видно, результат попереднього виклику передається в перший аргумент

               наступного. До речі, повний набір аргументів функції для reduce включає в себе



                                                                 121
   117   118   119   120   121   122   123   124   125   126   127