Я создал две функции. Один для создания 5 случайных чисел, чтобы поместить их в массив. И еще один, чтобы подвести итоги. Генератор случайных чисел работает и делает массив отлично. Но сумма не точная. Я не могу найти, где проблема.
//Generates 5 random numbers smaller than 10
function pushIntoArray() {
let arr = [];
let number;
for(let i = 0; i < 5; i++) {
number = Math.floor(Math.random() * 11);
arr.push(number);
}
return arr;
}
console.info(pushIntoArray());
//Adds the numbers in arr
function sumNum(arr) {
let total = 0;
for(let i = 0; i < arr.length; i++) {
total += arr[i];
}
return total;
}
let arr = pushIntoArray();
console.info(sumNum(arr));
Как сумма не верна. Когда я звоню pushIntoArray, я получаю [ 1, 6, 10, 4, 9 ], что правильно суммируется с 30.
Вы не выполняете сумму в массиве, который вы вошли в консоль. То, что вы регистрируете,
console.info(pushIntoArray()); // This is displayed in the console
Но затем вы генерируете массив ney, вызывая
let arr = pushIntoArray();
НО вы выполняете сумму в массиве arr, а не в той, которая отображается в консоли.
console.info(sumNum(arr)); // you did not console.info(arr)
Функция работает правильно, вы просто вызываете ее не по тому делу.
Потому что вы регистрируете другой набор значений массива и проверяете сумму разных наборов значений массива. Я изменил ваше заявление console.info.
//Generates 5 random numbers smaller than 10
function pushIntoArray() {
let arr = [];
let number;
for(let i = 0; i < 5; i++) {
number = Math.floor(Math.random() * 11);
arr.push(number);
}
return arr;
}
//Adds the numbers in arr
function sumNum(arr) {
let total = 0;
for(let i = 0; i < arr.length; i++) {
total += arr[i];
}
return total;
}
let arr = pushIntoArray();
console.info(arr);
console.info(sumNum(arr));
Функция работает правильно, но вы регистрируете другой массив случайных чисел и вычисляете сумму другого массива.
//Generates 5 random numbers smaller than 10
function pushIntoArray() {
let arr = [];
let number;
for(let i = 0; i < 5; i++) {
number = Math.floor(Math.random() * 11);
arr.push(number);
}
return arr;
}
// this array is different (this is not passed to the sumNum function)
console.info(pushIntoArray());
//Adds the numbers in arr
function sumNum(arr) {
let total = 0;
for(let i = 0; i < arr.length; i++) {
total += arr[i];
}
return total;
}
// this array is different
let arr = pushIntoArray();
console.info("sum of array:", arr)
console.info(sumNum(arr));
Функция sumNum складывает все числа в вашем массиве и возвращает результат этой суммы, поэтому в этом отношении она точна. Можете ли вы объяснить, почему результат не точен?