我是网页设计的新手,现在只在CC上学习。现在尝试编写我自己的js文本游戏,部分研究js。我被阵列困住了。 我有一个带字符串的预定义数组,需要与用户答案进行比较,但比较没有。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
/**
* java.util.date to java.sql.date
*/
public class DatesConversion {
public static void main(String[] args) {
java.util.Date uDate = new java.util.Date();
System.out.println("Time in java.util.Date is : " + uDate);
java.sql.Date sDate = convertUtilToSql(uDate);
System.out.println("Time in java.sql.Date is : " + sDate);
DateFormat df = new SimpleDateFormat("dd/MM/YYYY - hh:mm:ss");
System.out.println("Using a dateFormat date is : " + df.format(uDate));
}
private static java.sql.Date convertUtilToSql(java.util.Date uDate) {
java.sql.Date sDate = new java.sql.Date(uDate.getTime());
return sDate;
}
}
第一个想法,怎么做:
var myArray = ['selection 1', 'selection 2', 'selection 3', 'selection 4', 'selection 5', 'selection 6', 'selection 7', 'selection 8'];
alert("text description of scene and dimensions");
var dmg_start = Math.floor((Math.random() * 50) + 1); // pre-start damage dimension, will be used further
var user = prompt("make a selection").toLowerCase();
第二个想法是:
if (user.indexOf(myArray) > 0) {
console.log(user); // or mb document.write?
} else {
var user = prompt("make a selection").toLowerCase();
}
alert(myArray + "you can choose following");
第三个想法是:
var find = function (myArray, user) {
for (var i = 0; i < myArray.length; i++) {
if (myArray[i] == user) {return i;
}
}
return null;
};
另外,我认为可以在第一次错误数据输入后使用警报进行中断 提醒(myArray +“你可以选择以下”); 帮助用户做出决定,然后使用continue循环。
在某些情况下,我得到两次循环迭代,然后断开循环,即使循环用户给出错误的(不包含在数组中)值。
但两者都没用。你能用哪种方式来解决这个问题?
非常感谢您的关注并帮助我了解更多信息。
答案 0 :(得分:0)
试试这个......
var someArray = ['selection 1', 'selection 2', 'selection 3'];
var someIndex = -1;
do {
var someUser = prompt("make a selection").toLowerCase();
for (var i = 0; i < someArray.length; i++) {
if (someArray[i] === someUser) {
someIndex = i;
break;
}
}
if (someIndex > -1) {
alert('found at index: ' + someIndex);
} else {
alert('not found: please try this...');
// or something more put here
}
}
while (someIndex === -1);
答案 1 :(得分:0)
如果在阵列中的第一个位置找到用户输入,则您的情况会失败。
if (user.indexOf(myArray) > 0) {
和
while (myArray.indexOf(user))
如果找不到其他indexOf()
,则 -1
会>= 0
。
编辑:IST 2015年7月19日上午09:11
尝试使用循环最多2次尝试的示例:
var fruits = ['apple', 'mangoe', 'grape'];
var cnt = 2; //max attempt
var inp; // for user input
var pos;
do {
inp = prompt('Name a fruit').toLowerCase();
pos = fruits.indexOf(inp);
if (-1 === pos)
alert('Fruits available: ' + fruits);
} while (--cnt); //upto max attempts