Добавить сумму неопределенного массива в Javascript - PullRequest
1 голос
/ 27 марта 2020

Я теперь этот код работает, если у меня есть предустановленные значения, определенные в моем массиве, как бы я go об этом, если значения не определены? У меня есть трудности со всеми циклами в целом, особенно для l oop.

. Я знаю, что есть методы для достижения этой цели, но для цели моего задания я должен добиться этого, используя для l oop .

function sum() {
  let input = document.getElementById("wordInput").value;
  let values = [];
  let sum = 0;

  for (var i = 0; i < values.length; i++) {
    sum += values[i]

    if (values) {
      document.getElementById("resultReturned").innerHTML = " Total is" + sum;
    }
  }
}

Ответы [ 3 ]

0 голосов
/ 27 марта 2020

Простой пример:

function sumup(values) {
  // Got rid of input
  // taking values as arguments for this example
  let sum = 0;
  let res = 0; // Or whatever the default value
  if (values) {
    for (var i = 0; i < values.length; i++) {
      sum += values[i]
      res = sum;
    }
  }
  document.getElementById("valueReturned").innerHTML = "The sum is " + res;
}
sumup([1, 2, 3, 4, 5]); // Array passed here
// 15
<div id="valueReturned"></div>
0 голосов
/ 27 марта 2020

Немного неясно, что вы пытаетесь решить, но я отвечу на вопросы, которые, по вашему мнению, вы, возможно, задаете.

Сначала я приведу несколько комментариев к коду, который вижу , Для начала вы, вероятно, захотите переместить этот блок if (values) {} из for l oop. Я предполагаю, что вы намереваетесь обновить DOM, если есть values.

Во-вторых, если values является массивом, вы должны посмотреть на длину массива, чтобы определить, является ли он пустым с что-то вроде if (values.length > 0). Пустой массив оценивает правдивость, и DOM будет обновляться каждый раз, когда написан ваш код.

В-третьих, я не уверен насчет роли input здесь. Это даст вам одно значение, а не массив.

Вот что я бы порекомендовал, не зная, что вы видите на роль input:

function sum() {
  let input = document.getElementById("wordInput").value;
  let sum = 0;

  const values = [] // wherever values come from, perhaps a function argument or inputs

  for (var i = 0; i < values.length; i++) {
    sum += values[i]
  }
  if (values.length > 0) {
    document.getElementById("resultReturned").innerHTML = "The sum is" + sum;
  }
}
0 голосов
/ 27 марта 2020

Дайте вашей функции параметр . Таким образом, вы можете передать любой массив вашей функции и l oop поверх нее, независимо от длины.

function sum(values) {
  let input = document.getElementById("textField").value;
  let sum = 0;

  for (var i = 0; i < values.length; i++) {
    sum += values[i]

    if (values) {
      document.getElementById("valueReturned").innerHTML = "The sum is" + sum;
    }
  }
}

// Call the sum function and pass an array.
sum([1, 2, 3, 4]);
...