Как сложить 5 случайных чисел меньше 10?

Я создал две функции. Один для создания 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));

Функция sumNum складывает все числа в вашем массиве и возвращает результат этой суммы, поэтому в этом отношении она точна. Можете ли вы объяснить, почему результат не точен?

Nick Parsons 21.12.2020 08:06

Как сумма не верна. Когда я звоню pushIntoArray, я получаю [ 1, 6, 10, 4, 9 ], что правильно суммируется с 30.

Countour-Integral 21.12.2020 08:07
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Руководство ChatGPT по продаже мини JS-файлов
Руководство ChatGPT по продаже мини JS-файлов
JS-файл - это файл, содержащий код JavaScript. JavaScript - это язык программирования, который в основном используется для добавления интерактивности...
0
2
127
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы не выполняете сумму в массиве, который вы вошли в консоль. То, что вы регистрируете,

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));

Другие вопросы по теме