Попытка добавить элементы массива вместе - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь получить ввод в массив, используя цикл do while, пока пользователь не введет пробел или 0, а затем пытаюсь добавить все элементы в этом массиве вместе, однако он возвращает их в виде строки.

Я пытался использовать parseInt() в нескольких местах, однако это обычно приводит к тому, что код вообще не работает.

document.getElementById('while').addEventListener('click', stats);
document.getElementById('while').addEventListener('click', reduction);

var input_array = [];
var value = 0;

function stats() {
  do {
    var number = prompt('Enter a Number');
    var array = input_array.push(number);

    document.getElementById('out2').innerHTML = "[" + input_array + "]";
  } while (value != number);
}

function array_sum(total, num) {
  return total + num;
}

function reduction(item) {
  document.getElementById('out3').innerHTML = input_array.reduce(array_sum);
}

1 Ответ

0 голосов
/ 26 мая 2019

Если вы просто parseInt перед тем, как вставить значение в массив, вы получите числа в массиве, и все будет работать как ожидалось:

let input_array = [];
let value = 0

function stats() {
  do {
    var number = prompt('Enter a Number');
    var array = input_array.push(parseInt(number));  // <-- parse here
  } while (value != number);
}

stats()  // show the prompt etc

function array_sum(total, num) {
  return total + num
}

console.log(input_array.reduce(array_sum))

Я разместил только часть js без html, просто чтобы дать вам пример того, как она работает, как и ожидалось.

...