Что такое вспомогательные функции?

JSON ответ в JavaScript Изучение

Функции, которые выполняют часть вычислений других функций, называются вспомогательными функциями.

Они названы в соответствии с их работой, т. е. они помогают основной функции выглядеть более чистой, точной и читаемой, давая описательные имена некоторым задействованным вычислениям. Кроме того, после объявления вспомогательных функций их можно использовать в любом месте программы, что повышает возможность повторного использования кода.

Следующие примеры прояснят использование вспомогательных функций.

Пример 1: Предположим, нам нужно написать функцию, которая принимает массив строк str в качестве входных данных и возвращает другой массив pal, где pal[i] — «Да», если str[i] — палиндром, и возвращает «Нет». » в противном случае. Может быть два способа решить эту проблему: один без использования какой-либо вспомогательной функции, а другой с ее использованием.

Javascript

 

<script>
     // Without using helper functions
 
     var str = ["gfg", "radar", "article", "geeksforgeeks", "racecar"];
     var pal = [];
 
      function palArray(str) {
          for (let i = 0; i < str.length; i++) {
              let temp = str[i];
              let n = temp.length;
              let check = true;
              for (let j = 0; j < n / 2; j++) {
                  if (temp[j] != temp[n - j - 1]) {
                      check = false;
                      break;
                  }
              }
              if (check == true)
                  pal.push("Yes");
              else
                  pal.push("No");
          }
          return pal;
      }
 
    palArray(str);
 
    for (var i = 0; i < 5; i++) {
        console.log(str[i] + " " + pal[i]);
    }
</script>

 

Выход:

gfg Yes
radar Yes
article No
geeksforgeeks No
racecar Yes

Javascript

<script>
    // Using helper functions
 
    var str = ["gfg", "radar", "article", "geeksforgeeks", "racecar"];
    var pal = [];
 
    // Defining a helper function to check 
    // whether a string is palindrome or not
    function checkPal(s){
        let n = s.length;
            for (let i = 0; i < n / 2; i++) {
                if (s[i] != s[n - i - 1]) {
                    return false;
                }
            }
        return true;
    }
 
    function palArray(str) {
        for (let i = 0; i < str.length; i++) {
            let temp = str[i];
 
            if (checkPal(temp)==true)
                pal.push("Yes");
            else
                pal.push("No");
        }
        return pal;
    }
 
    palArray(str);
 
    for (var i = 0; i < 5; i++) {
        console.log(str[i] + " " + pal[i]);
    }
 
</script>

Выход:

gfg Yes
radar Yes
article No
geeksforgeeks No
racecar Yes

Пример 2. В качестве второго примера использования вспомогательных функций предположим, что нам нужно распечатать среднее значение различных параметров, таких как рост, вес и т. д. игроков в команде. Один из способов — писать один и тот же код снова и снова, чтобы вычислить среднее значение для каждого параметра, что загромождает код.
Другой способ — использовать вспомогательную функцию, которая вычисляет среднее значение массива, переданного ей в качестве аргумента. Вспомогательная функция может быть вызвана в основной функции, используемой для расчета и печати средних значений. Это повышает возможность повторного использования кода.

Читайте также:  Data Science Simplified: что такое языковое моделирование для NLP?

Javascript

<script>
    //Without using helper functions
 
    var heights=[172,166,180,175,170,182,176,165,162];
    var weights=[68,70,74,70,65,82,75,66,60];
    var ages=[20,19,23,19,20,21,24,22,21];
 
    function printAverages(heights,weights,ages){
        let heightSum=0,weightSum=0,ageSum=0;;
        for(let i=0;i<heights.length;i++){
            heightSum+=heights[i];
        }
        let avgHeight=heightSum/heights.length;
        for(let i=0;i<weights.length;i++){
            weightSum+=weights[i];
        }
        let avgWeight=weightSum/weights.length;
        for(let i=0;i<ages.length;i++){
            ageSum+=ages[i];
        }
        let avgAge=ageSum/ages.length;
        console.log("Average Height - " + avgHeight);
        console.log("Average Weight - " + avgWeight);
        console.log("Average Age - " + avgAge);
    }
    printAverages(heights, weights, ages);
 
</script>

Выход:

Average Height - 172
Average Weight - 70
Average Age - 21

Javascript

 

<script>
 
    //Using helper functions
 
    var heights = [172, 166, 180, 175, 170, 182, 176, 165, 162];
    var weights = [68, 70, 74, 70, 65, 82, 75, 66, 60];
    var ages = [20, 19, 23, 19, 20, 21, 24, 22, 21];
 
    //Defining a helper function that calculates average
    function calcAverage(array) {
        let sum = 0;
        for (let i = 0; i < array.length; i++) {
            sum += array[i];
        }
        return sum / array.length;
    }
    function printAverages(heights, weights, ages) {
        let avgHeight = calcAverage(heights);
        let avgWeight = calcAverage(weights);
        let avgAge = calcAverage(ages);
        console.log("Average Height - " + avgHeight);
        console.log("Average Weight - " + avgWeight);
        console.log("Average Age - " + avgAge);
    }
    printAverages(heights, weights, ages);
 
</script>

 

Выход:

Average Height - 172
Average Weight - 70
Average Age - 21

Теперь из приведенных выше примеров становится ясно, как вспомогательные функции помогают нам улучшить возможность повторного использования кода, писать чистый код и улучшать его читаемость. Кроме того, однажды определенная вспомогательная функция может также использоваться в различных других функциях, требующих аналогичных вычислений.
Таким образом, всякий раз, когда мы находим одно и то же вычисление несколько раз в какой-либо функции или программе, мы должны создать отдельную (вспомогательную) функцию для этого вычисления и вместо этого вызывать эту функцию, чтобы сделать код более читабельным и чистым.

Оцените статью
bestprogrammer.ru
Добавить комментарий

  1. G392j

    Хорошая статья! Спасибо!

    Ответить
Adblock
detector