Не считает сумму в массиве [требует правки]

287
08 августа 2017, 17:46
function range(start, end){
var array=[];
for(var i=start; i<=end; i++){
    array.push(i);
}
return array;
}
console.log(range(5,8));
function sum(array){
   var total = 0;
   for (var i = 0; i < array.length; i++)
   total += array[i];
   return total;
}
   console.log(sum());

Выдаёт 2 errorа в консоли. В чём ошибка? P.S. Нашёл ошибку. console.log(sum(range(a,b)));

Answer 1

Ошибка была в том, что нужно было передать данные в функцию sum() в той области видимости, в которой идет вызов этой функции вот так sum(arr) (например). А вы передавали пустоту и от этого функция выдавала undefined.

Рабочий пример:

function range(start, end){ 
var array=[]; 
for(var i=start; i<=end; i++){ 
    array.push(i); 
} 
return array; 
} 
// используем переменную для удобства, чтобы передать ее в функцию sum ниже 
var arr=range(5,8); 
console.log(arr); 
 
function sum(array){ 
   var total = 0; 
   for (var i = 0; i < array.length; i++) 
   total += array[i]; 
   return total; 
} 
// передаем "массив" 
console.log(sum(arr));

READ ALSO
Как мокнуть компонент

Как мокнуть компонент

В общем есть компонент на angular4 написал для него тест замокал сервисы, все было норм, теперь добавляю внутри этого компонента вызов другого

433
Грамотный onUnLoad

Грамотный onUnLoad

Событие onUnLoad возникает если пользователь покидает страницуНо к сожалению это поддерживается не во всех браузерах

244
Выведение информационного сообщения

Выведение информационного сообщения

Как вывести информационное сообщение после отправки формы заказа на сервер? Возможно ли это средствами WooCommerce

294
MaterializeCSS datetime picker

MaterializeCSS datetime picker

ЗдравствуйтеПытаюсь сделать datetime picker для MaterializeCSS, поскольку нативного нет

382