簡體   English   中英

Javascript for 循環計算兩個數據數之間所有數的平方根,通過表格相加

[英]Javascript for loop that calculates the square root of all numbers between two data numbers, added through a form

僅適用於某些數字,但例如當我嘗試插入 3-10 時不起作用。 我不知道出了什么問題。 我還在學習 Javascript。 對不起,我的英語不好。 謝謝你

 let btn = document.getElementById("btn") let msg = document.getElementById("avvisi") btn.addEventListener("click", () => { let primo = document.forms['modulo']['primonum'].value let secondo = document.forms['modulo']['secondonum'].value for (let i = primo; i <= secondo; i++) { console.log(i * i) } })
 <form id="modulo"> inizio <input type="text" id="primonum"> fine <input type="text" id="secondonum"> <input type="button" id="btn" value="go"> </form>

您需要將字符串從輸入轉換為數字。 最短的方法是在表達式前面使用一元加號+

 let btn = document.getElementById("btn"); let msg = document.getElementById("avvisi"); btn.addEventListener("click", () => { let primo = +document.forms['modulo']['primonum'].value let secondo = +document.forms['modulo']['secondonum'].value for (let i = primo; i <= secondo; i++) { console.log(i * i); } });
 <form id="modulo"> inizio <input type="text" id="primonum"> fine <input type="text" id="secondonum"> <input type="button" id="btn" value="go"> </form>

primosecondo是字符串,因為它們來自輸入。 因此,當您將i設置為 primo 時, i也是一個字符串。 當比較“3”和“10”時,“3”大於“10”,因為它們的 unicode 值,它跳過循環,因為在這種情況下i <= secondo是假的。 執行i*i只能使用數字,因此 javascript 將它們轉換為數字並且它可以工作。 解決方案是將字符串直接轉換為數字。

let primo = Number(document.forms['modulo']['primonum'].value);
let secondo = Number(document.forms['modulo']['secondonum'].value);

或者

let primo = +document.forms['modulo']['primonum'].value;
let secondo = +document.forms['modulo']['secondonum'].value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM