Функции, которые выполняют часть вычислений других функций, называются вспомогательными функциями.
Они названы в соответствии с их работой, т. е. они помогают основной функции выглядеть более чистой, точной и читаемой, давая описательные имена некоторым задействованным вычислениям. Кроме того, после объявления вспомогательных функций их можно использовать в любом месте программы, что повышает возможность повторного использования кода.
Следующие примеры прояснят использование вспомогательных функций.
Пример 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. В качестве второго примера использования вспомогательных функций предположим, что нам нужно распечатать среднее значение различных параметров, таких как рост, вес и т. д. игроков в команде. Один из способов — писать один и тот же код снова и снова, чтобы вычислить среднее значение для каждого параметра, что загромождает код.
Другой способ — использовать вспомогательную функцию, которая вычисляет среднее значение массива, переданного ей в качестве аргумента. Вспомогательная функция может быть вызвана в основной функции, используемой для расчета и печати средних значений. Это повышает возможность повторного использования кода.
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
Теперь из приведенных выше примеров становится ясно, как вспомогательные функции помогают нам улучшить возможность повторного использования кода, писать чистый код и улучшать его читаемость. Кроме того, однажды определенная вспомогательная функция может также использоваться в различных других функциях, требующих аналогичных вычислений.
Таким образом, всякий раз, когда мы находим одно и то же вычисление несколько раз в какой-либо функции или программе, мы должны создать отдельную (вспомогательную) функцию для этого вычисления и вместо этого вызывать эту функцию, чтобы сделать код более читабельным и чистым.
Хорошая статья! Спасибо!