Получить сумму чисел

Рейтинг: -5Ответов: 2Опубликовано: 05.05.2023

введите сюда описание изображения

В JS написать программу, где пользователь будет вводить любое количество цифр через пробел и видеть их сумму через input. Без input то не сложно, а с ним ни как понять не могу, как с пробелами считать

Ответы

▲ 3Принят

Можно использовать .split(separator):

function getSum() {
  document
    .getElementById("result")
    .innerText = document
      .getElementById("numbers")
      .value
      .split(" ")
      .map(x => parseInt(x))
      
      .reduce((x, y) => x + y);
}
<input type="text" id="numbers" value="1 45 7 8 22"></input><br/>
<button>Get sum</button><br/>
<a id="result"></a>

UPD: В комментариях подметили про NaN:

function getSum() {
  document
    .getElementById("result")
    .innerText = document
      .getElementById("numbers")
      .value
      .split(" ")
      .map(x => {
        const y = parseInt(x);
        return isFinite(y)
          ? y
          : 0;
      })
      .reduce((x, y) => x + y);
}
<input type="text" id="numbers" value="1 45 7 8 22"></input><br/>
<button>Get sum</button><br/>
<a id="result"></a>

▲ 2

Предложу еще такой вариант...

document.querySelector('button').addEventListener('click', _ => {
  result.textContent = numbers.value.match(/\d+/g).reduce((s, v) => s + +v, 0)
})
<input type="text" id="numbers" value="1 45 7 8 22"></input><br/>
<button>Get sum</button><br/>
<p id="result"></p>