問題是重複的,抱歉。使用JS的陣列問題
回答
您正在嵌套您的if
陳述。將它們設置在同一級別上。也可以使用if else
:
if (index == 1) {
console.log('Thank you, your Drink' + ' has now been dispensed.');
}
else if (index == 2) {
console.log('Thank you, your Crisps' + ' has now been dispensed.');
}
else if (index == 3) {
console.log('Thank you, your Chocolate' + ' has now been dispensed.');
}
else if (index == 4) {
console.log('Thank you, your Candy' + ' has now been dispensed.');
}
謝謝你的反饋! – ZenoX
你的大括號會混亂。你讓他們一個在另一個這樣的:
if(){
if(){
if(){
if(){
}
}
}
}
試着改變你的代碼:
var readlineSync = require('readline-sync'),
products = [];
products[1] = "Drink";
products[2] = "Crisps";
products[3] = "Chocolate";
products[4] = "Candy";
var productPurchase = readlineSync.question('Would you like to purchase a product? ');
if (productPurchase == "yes") {
index = readlineSync.keyInSelect(products, 'What product would you like?');
if (index == 1) {
console.log('Thank you, your Drink' + ' has now been dispensed.');
}
if (index == 2) {
console.log('Thank you, your Crisps' + ' has now been dispensed.');
}
if (index == 3) {
console.log('Thank you, your Chocolate' + ' has now been dispensed.');
}
if (index == 4) {
console.log('Thank you, your Candy' + ' has now been dispensed.');
}
}
使用正確的縮進有助於避免類似這樣的問題。如果你的代碼寫得更乾淨,你可能會馬上注意到這個問題。
注意:您可能希望將這些if
語句更改爲switch
。這可能是最好的情況。
謝謝,我會考慮在這種情況下使用開關! :) – ZenoX
試試這個:
var readlineSync = require('readline-sync'),
products = [];
products[1] = "Drink";
products[2] = "Crisps";
products[3] = "Chocolate";
products[4] = "Candy";
var productPurchase = readlineSync.question('Would you like to purchase a product? ');
if (productPurchase == "yes") {
index = readlineSync.keyInSelect(products, 'What product would you like?');
if (index == [1])
console.log('Thank you, your Drink' + ' has now been dispensed.');
else if (index == [2])
console.log('Thank you, your Crisps' + ' has now been dispensed.');
else if (index == [3])
console.log('Thank you, your Chocolate' + ' has now been dispensed.');
else if (index == [4])
console.log('Thank you, your Candy' + ' has now been dispensed.');
}
謝謝您的反饋! – ZenoX
你嵌套if
的永遠不會被執行,index
不能同時爲1和3在同一時間。我建議你使用switch
相反,它基本上是什麼你正在嘗試做的:
var productPurchase = readlineSync.question('Would you like to purchase a product? ');
if (productPurchase == "yes") {
index = readlineSync.keyInSelect(products, 'What product would you like?');
switch (index) {
case 1 :
console.log('Thank you, your Drink' + ' has now been dispensed.');
break;
case 2 :
console.log('Thank you, your Crisps' + ' has now been dispensed.');
break;
case 3 :
console.log('Thank you, your Chocolate' + ' has now been dispensed.');
break;
case 4 :
console.log('Thank you, your Candy' + ' has now been dispensed.');
break;
default :
console.log('something went wrong');
break;
}
}
注:已經糾正的index
錯誤的用法。 keyInSelect()
將索引作爲數字返回,而不是數組。
- 1. 陣營JS問題
- 2. JS - 從陣列中刪除元素(使用拼接的問題)
- 3. 問題使用散列2陣列
- 4. 使用Javascript和陣列的問題
- 5. 使用陣列切片時的問題
- 6. 陣營JS路由問題
- 7. JS矩陣乘法問題
- 8. 使用地圖和分割與React JS陣列重複和格式問題JS
- 9. 問題陣列
- 10. 陣列問題
- 11. PHP:問題與使用參考陣列
- 12. 問題與使用代碼陣列
- 13. 與陣列問題
- 14. 問題與陣列
- 15. Ç陣列問題
- 16. Codeigniter陣列問題
- 17. SQLI陣列問題
- 18. Android,陣列問題
- 19. DispatcherTimer陣列問題
- 20. PHP陣列問題
- 21. XAML陣列問題
- 22. 問題與陣列
- 23. NSMutable陣列問題
- 24. 問題與陣列
- 25. 問題與陣列
- 26. ExtJS陣列問題
- 27. 問題與陣列
- 28. NsMutable陣列問題
- 29. 問題animationImages陣列
- 30. 使用陣列使用流星JS
它看起來像你想'if(index [0] === 1)'等等。 – JJJ
爲什麼對所有答案都如此贊同? – Rokin
@Rraham請解釋一下。 – Dropout