Кто-нибудь знает, как сделать начальный номер и конечный номер создать неупорядоченный список квадратных корней? - PullRequest
0 голосов
/ 29 января 2019

Мне трудно понять, как заставить это работать.Мне нужно, чтобы поле StartNumber имело значение 0, а EndNumber - 12. При нажатии ClickMe! он создает неупорядоченный список каждого квадратного корня 0-12.

function wasClicked() {
  let firstBox = document.getElementById("startNumber");
  console.log("firstBox is " + firstBox);
  let startNumber = firstBox.Value;
  let secondBox = document.getElementById("endNumber");
  let endNumber = secondBox.value || 12;
  let line = "";
  for (let i = startNumber; i = endNUmber; i++) {
    line += "<li>The square root of " + i + " is " + Math.sqrt(i).toFixed(3) + "</li>\n";
  }
  console.log(line);
}

function isANumber(x) {
  return !isNaN(x);
}
<div>
  <label>Start Number:</label>
  <input type="text" id="startNumber" /><br>
</div>
<div>
  <label>End Number:</label>
  <input type="text" id="endNumber" /><br>
</div>
<div>
  <button onclick="wasClicked()">Click Me!</button>
</div>
<div></div>
<h2>The list</h2>
<ul id="theList"></ul>

1 Ответ

0 голосов
/ 29 января 2019

Ваш код имеет ряд проблем.

Во-первых, регистр имеет значение в JavaScript, поэтому firstBox.value не firstBox.Value, а endNumber - это совершенно другое имя, чем endNUmber.Убедитесь, что вы знаете правильный регистр любых встроенных свойств или методов и используете согласованный регистр в именах переменных.

Во-вторых, синтаксис for -loop отключен.Это должно быть что-то вроде

for (let i = start; i <= end; i++) ...

. Кроме того, свойство .value элементов HTML <input> является строкой, поэтому вам нужно преобразовать ее в число, если вы хотите рассматривать какчисло.Есть несколько способов сделать это, но в этом примере я буду использовать Number.parseFloat.

Наконец, вы захотите каким-то образом отобразить результат на DOM,Опять же, есть несколько способов сделать это, но самый простой это Element.innerHTML.

Собрав все это вместе, вы получите что-то вроде этого:

function wasClicked() {
  let firstBox = document.getElementById("startNumber");
  let startNumber = Number.parseFloat(firstBox.value);
  let secondBox = document.getElementById("endNumber");
  let endNumber = Number.parseFloat(secondBox.value);
  let line = "";
  for (let i = startNumber; i <= endNumber; i++) {
    line += `<li>The square root of ${i} is ${Math.sqrt(i).toFixed(3)}</li>`;
  }
  document.getElementById("theList").innerHTML = line;
}

function isANumber(x) {
  return !isNaN(x);
}
<div>
  <label>Start Number:</label>
  <input type="text" id="startNumber" /><br>
</div>
<div>
  <label>End Number:</label>
  <input type="text" id="endNumber" /><br>
</div>
<div>
  <button onclick="wasClicked()">Click Me!</button>
</div>
<div></div>
<h2>The list</h2>
<ul id="theList"></ul>
...