我一直在撰寫這段代碼來生成一個倒計時數學問題和答案,但是當我運行它時它不起作用(對于有問題的變數名稱很抱歉,這也是我第一次使用 JavaScript,所以我可能沒有做正確的事情):
<html>
<head>
<title>countdown generator</title>
</head>
<body>
<script>
function remove(arr, value){
for( var i = 0; i < arr.length; i ){
if ( arr[i] === value) {
arr.splice(i, 1);
}
}
}
function pop(array, value){
let n = array[value]
remove(array, value)
return n;
}
let num = [25, 50, 75, 100]
let anum = []
function genrt(){
let leng = parseInt(document.getElementById("i1");)
let small = parseInt(document.getElementById("i2");)
for(i=0; i<leng; i ){
anum.push(Math.floor(Math.random()*10) 1)
}
for(i=0; i<small; i ){
anum.push(num[Math.floor(Math.random()*3)])
}
document.getElementById("1").innerHTML = "Your numbers are: " String(anum);
let nuum = Math.floor(Math.random()*(anum.length-1))
let out = anum[nuum]
remove(anum, nuum)
ans = String(out)
lenggg = Math.floor(Math.random()*anum.length-3) 3
for(i=0; i<lenggg; i ){
let op = Math.floor(Math.random()*3)
let nnuu = Math.floor(Math.random()*(anum.length-1))
let nuuuum = anum[nnuu]
remove(anum, nnuu)
if(op==0){
out =nuuuum
ans =' '
}
if(op==1){
out-=nuuuum
ans ='-'
}
if(op==2){
out*=nuuuum
ans ='*'
}
if(op==3){
out/=nuuuum
ans ='/'
}
ans =String(nuuuum)
ans ='\n'
}
document.getElementById("2").innerHTML = "Your target is: " String(out);
}
function reveal(){
document.getElementById("3").innerHTML = "The solution is (without bodmas): " ans;
}
</script>
<p>How many small numbers</p>
<input type="int" id="i1" value=3>
<p>How many big numbers</p>
<input type="int" id="i2" value=2>
<button onclick="genrt()">Generate</button>
<p id="1">Your numbers are:</p>
<p id="2">Your target is:</p>
<button onclick="reveal()">Solve it</button>
<p id="3">The solution is (without bodmas)</p>
</body>
</html>
但是當我按下生成按鈕時,它說函式 genrt 未定義。我一直在尋找答案并嘗試了很多東西,但似乎沒有任何效果,有誰知道我做錯了什么?
uj5u.com熱心網友回復:
您在這些行上有語法錯誤:
let leng = parseInt(document.getElementById("i1");)
let small = parseInt(document.getElementById("i2");)
你放錯了;符號。您應該始終閱讀控制臺輸出,錯誤在控制臺日志中清晰可見。
uj5u.com熱心網友回復:
您的腳本有語法錯誤。您應該在控制臺中看到的第一個錯誤是
引數串列后未捕獲的 SyntaxError: missing )
顯然,由于它編譯 Javascript 失敗,那么當您之后嘗試從該失敗塊呼叫函式時,它將不存在,因為 JS 引擎無法讀取代碼以加載它。
如果您修復語法錯誤,則未定義函式錯誤將消失。這實際上是幾個相當簡單的錯別字:
let leng = parseInt(document.getElementById("i1");)
let small = parseInt(document.getElementById("i2");)
需要成為
let leng = parseInt(document.getElementById("i1"));
let small = parseInt(document.getElementById("i2"));
;總是結束一行 - 如果你在后面有一些東西;本身并不形成有效的代碼行,那么你知道這肯定是錯誤的。我建議使用 IDE 或代碼編輯器,它可以理解 JavaScript 語法,并且可以在您嘗試運行代碼之前向您突出顯示這些型別的問題。
(我不保證你不會有其他不相關的錯誤或錯誤,我還沒有測驗到那個程度的代碼。)
uj5u.com熱心網友回復:
在這些行中有 wqs 分號
let leng = parseInt(document.getElementById("i1");)
let small = parseInt(document.getElementById("i2");)
ans 變數不是 difine
但我不知道結果是否是你想要的
我做了一些更正
<html>
<head>
<title>countdown generator</title>
</head>
<body>
<script>
function remove(arr, value){
for( var i = 0; i < arr.length; i ){
if ( arr[i] === value) {
arr.splice(i, 1);
}
}
}
function pop(array, value){
let n = array[value]
remove(array, value)
return n;
}
let num = [25, 50, 75, 100]
let anum = []
let ans = null
function genrt(){
let leng = parseInt(document.getElementById("i1"))
let small = parseInt(document.getElementById("i2"))
for(i=0; i<leng; i ){
anum.push(Math.floor(Math.random()*10) 1)
}
for(i=0; i<small; i ){
anum.push(num[Math.floor(Math.random()*3)])
}
document.getElementById("1").innerHTML = "Your numbers are: " String(anum);
let nuum = Math.floor(Math.random()*(anum.length-1))
let out = anum[nuum]
remove(anum, nuum)
console.log(String(out))
ans = String(out)
lenggg = Math.floor(Math.random()*anum.length-3) 3
for(i=0; i<lenggg; i ){
let op = Math.floor(Math.random()*3)
let nnuu = Math.floor(Math.random()*(anum.length-1))
let nuuuum = anum[nnuu]
remove(anum, nnuu)
if(op==0){
out =nuuuum
ans =' '
}
if(op==1){
out-=nuuuum
ans ='-'
}
if(op==2){
out*=nuuuum
ans ='*'
}
if(op==3){
out/=nuuuum
ans ='/'
}
ans =String(nuuuum)
ans ='\n'
}
document.getElementById("2").innerHTML = "Your target is: " String(out);
}
function reveal(){
document.getElementById("3").innerHTML = "The solution is (without bodmas): " ans;
}
</script>
<p>How many small numbers</p>
<input type="int" id="i1" value=3>
<p>How many big numbers</p>
<input type="int" id="i2" value=2>
<button onclick="genrt()">Generate</button>
<p id="1">Your numbers are:</p>
<p id="2">Your target is:</p>
<button onclick="reveal()">Solve it</button>
<p id="3">The solution is (without bodmas)</p>
</body>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/314893.html
標籤:javascript html
上一篇:代碼排條件陳述句問題集
