2015-06-26 134 views
0

我正在嘗試爲一週的日子創建一個數組,但是我希望它在輸入的數字未分配給值時顯示錯誤。這是我所擁有的,但是在我的if語句後面寫着「今天是未定義的」。我認爲這是因爲陣列。有沒有辦法將if語句作爲數組的一部分,這樣只有一條消息彈出?javascript array if語句

var dayNum=prompt('enter as number from 0 to 6', ' '); 
 
if (dayNum >='7'); 
 
{ 
 
alert("invalid input received, try again") 
 
} 
 
var weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", " "]; 
 
alert("Today is " + weekdays[dayNum]);

回答

5

這是因爲分號在這裏沒有必要的;被終止聲明

if (dayNum >='7'); 

刪除分號。另外,如果輸入無效,您的第二種情況仍在運行。相反,將其放入一個else語句中。

var dayNum = Number(prompt('enter as number from 0 to 6', ' ')); 
 
if (isNaN(dayNum) || dayNum >= 7) 
 
{ 
 
    alert("invalid input received, try again") 
 
} else { 
 
    var weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; 
 
    alert("Today is " + weekdays[dayNum]); 
 
}

最後,它也是明智的,把它們當作一個之前將字符串轉換(這是迅速的返回類型)的號碼類型。在這種情況下,JavaScript知道數組的索引只能是數字,因此會自動嘗試爲您轉換類型。只要用戶鍵入一個有效的號碼,它就可以作爲索引而沒有問題。但是,字符串按字母順序進行比較。這意味着(string >= '7')可能並不總是按照您的預期行事:字母大於數字,但特殊字符較少。

0

有後if (dayNum >=7)

var dayNum=prompt('enter as number from 0 to 6', ' '); 
 

 

 
if (dayNum >=7) 
 
{ 
 
alert("invalid input received, try again") 
 
} 
 
var weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", " "]; 
 
alert("Today is " + weekdays[dayNum]); 
 
document.getElementById("demo").innerHTML = weekdays[dayNum];

0

您的代碼中幾乎沒有錯誤。首先是if條件之後的分號,另一個是使用字符串比較而不是數字。在if條件中刪除數字的引用。並且數組的索引也是錯誤的。你正在提供一個字符串。它應該是int類型。

<script> 
var dayNum=parseInt(prompt('enter as number from 0 to 6', ' ')); 
if (dayNum >= 7) 
{ 
alert("invalid input received, try again"); 

} 
else{ 
var weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", " "]; 
alert("Today is " + weekdays[dayNum]); 

} 
</script> 
+1

,你也需要使用else語句,否則第二部分也將得到執行,你會得到警報說今天是不確定的。 – Diwas

0

其實,你會希望有輸入是1-7和有一個假的錯誤聲明,如果您使用0例如:

var weekdays = ["Error", "Sun", "Mon", ..., "Sat"]; 

那麼你將要做出一個循環將字符串轉換爲數字:

for(i=0;i<=7;i++){ 
    if(dayNum==i){ 
     dayNum=i; 
    } 
} 

這會給你一個整數而不是字符串,使用近似值。你釣代碼如下:

var dayNum=prompt('enter as number from 0 to 6', ' '); 
 
for(i=0;i<=7;i++){ 
 
    if(dayNum==i){ 
 
     dayNum=i; 
 
    } 
 
} 
 
if (dayNum <=7) 
 
{ 
 
    alert("invalid input received, try again"); 
 
} 
 
else if(dayNum === 0) 
 
{ 
 
    alert("invalid input received, try again"); 
 
} 
 
else 
 
{ 
 
var weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", " "]; 
 
alert("Today is " + weekdays[dayNum]); 
 
}

0

var dayNum=prompt('enter as number from 0 to 6', ' '); 
 
for(i=0;i<=7;i++){ 
 
    if(dayNum==i){ 
 
     dayNum=i; 
 
    } 
 
} 
 
if (dayNum >=7) 
 
{ 
 
    alert("invalid input received, try again"); 
 
} 
 
else if(dayNum === 0) 
 
{ 
 
    alert("invalid input received, try again"); 
 
} 
 
else 
 
{ 
 
var weekdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", " "]; 
 
alert("Today is " + weekdays[dayNum]); 
 
}

+1

雖然這段代碼可能會回答這個問題,但最好包含一些上下文,解釋它的工作原理以及何時使用它。從長遠來看,僅有代碼的答案是沒有用的。 – davejal