Page 116 - 6105
        P. 116
     Наприклад,  вкажемо  цю  функцію  явно,  відсортуємо  елементи  масиву  як
               числа:
                      function compareNumeric (a, b) {
                        if (a> b) return 1;
                        if (a <b) return -1;
                      }
                      var arr = [1, 2, 15];
                      arr.sort (compareNumeric);
                      alert (arr); // 1, 2, 15
                      Зверніть увагу, ми передаємо в sort () саме саму функцію compareNumeric,
               без виклику через дужки. Був би помилкою наступний код:
                      arr.sort (compareNumeric ()); // не спрацює
                      Як  видно  з  прикладу  вище,  функція,  передана  sort,  повинна  мати  два
               аргументи. Алгоритм сортування, вбудований в JavaScript, буде передавати їй для
               порівняння елементи масиву. Вона повинна повертати додатнє значення, якщо a>
               b, від’ємне значення, якщо a <b, якщо рівні – можна 0, але взагалі – не важливо,
               що повертати, якщо їх взаємний порядок не має значення.
                      У  методі  sort,  всередині  самого  інтерпретатора  JavaScript,  реалізований
               універсальний  алгоритм  сортування.  Як  правило,  це  ««  швидке  сортування  »»,
               додатково оптимізоване для невеликих масивів. Він вирішує, які пари елементів і
               коли порівнювати, щоб впорядкувати швидше. Йому необхідно надати функцію,
               тобто метод порівняння, далі він викликає її сам.
                      Ті значення, з якими  sort викликає функцію порівняння, можна  побачити,
               якщо вставити в неї alert:
                      [1, -2, 15, 2, 0, 8] .sort (function (a, b) {
                        alert (a + "<>" + b);
                      });
                                                                 115





