Функции и массивы
Аргументом может быть любое значение, в том числе массив. Функция, получившая массив, может обойти его циклом и вернуть результат. Эта функция складывает все числа массива:
function sum(numbers) {
let total = 0;
for (const number of numbers) {
total += number;
}
return total;
}
console.log(sum([1, 2, 3]));
const prices = [120, 45, 80];
console.log(sum(prices));Это выведет:
6
245Параметр numbers хранит тот массив, который передан в вызове: сначала [1, 2, 3], затем массив prices. Цикл вы знаете из урока про циклы, но теперь он находится внутри функции, поэтому сложить числа любого массива можно одной строкой. А поскольку total — локальная переменная, каждый вызов снова начинает с 0.
Обратите внимание, где стоит return: после цикла, когда все числа уже сложены. Частая ошибка — поставить его внутрь цикла:
function sum(numbers) {
let total = 0;
for (const number of numbers) {
total += number;
return total;
}
}
console.log(sum([1, 2, 3]));Это выведет:
1return завершает всю функцию, а вместе с ней и цикл, уже на первой итерации. Поэтому функция возвращает только первое число.
Задание
- 1
Программа заканчивается ошибкой
ReferenceError: average is not defined, потому что функцииaverageещё нет. Напишите её на месте комментария: у неё есть параметрnumbers, и она возвращает среднее значение чисел в массиве. Сложите их циклом и разделите сумму на количество элементов,numbers.length. Тогда программа выведет средние температуры двух недель,21и13. - 2
В конце программы сравните две недели: если среднее значение
week1больше среднего значенияweek2, выведитеПервая неделя была теплее.