嘿,我可以请一点帮助我 好吧,我想添加许多变量,让他们检查数组,但它只是不起作用。 我希望它检查文本框中的所有文本,如果它与数组相同,那么它将提供警报。 这是我的代码
function setValue(){
myVariable= document.forms["myform"]["gname"].value;
myVariable1= document.forms["myform"]["graphic"].value;
myVariable2= document.forms["myform"]["gpc"].value;
myVariable3= document.forms["myform"]["procesor"].value;
myVariable4= document.forms["myform"]["ram"].value;
myVariable5= document.forms["myform"]["os"].value;
var graphic = ["radeon hd", "nvidia"];
var gname = ["prince of persia", "grand theft auto"];
var gpc = ["radeon hd 121", "nvidia 121"];
var procesor = ["intel i7", "intel i5", "intel i3"];
var os = ["Windows 7", "Windows 8", "Windows xp"];
var ram = ["4 Gb", "8 Gb", "12 Gb"];
var canRun = false;
for(i=0;i<ram.length;i++)
(i=0;i<gpc.length;i++)
(i=0;i<os.length;i++)
(i=0;i<procesor.length;i++)
(i=0;i<gname.length;i++)
(i=0;i<graphic.length;i++)
{
if (myVariable5 === os[i] && myVariable4 === ram[i] && myVariable3 === procesor[i] && myVariable2 === gpc[i] && myVariable1 === graphic[i] && myVariable === gname[i])
{
canRun = true;
}
}
if (canRun)
{
alert("yes this game can run");
}
else
{
alert("No, This game cannot run");
}
};
答案 0 :(得分:1)
你不能像这样简单地将for
循环。每个数组都需要一个单独的循环,或者更简单地说,使用indexOf
代替。
答案 1 :(得分:0)
您可以一次运行一个循环,如下所示:
var ok_count = 0;
for(i=0;i<ram.length;i++) {
(myVariable4 === ram[i]) {
ok_count++;
break;
}
}
for (i=0;i<gpc.length;i++) {
(myVariable2 === gpc[i]) {
ok_count++;
break;
}
}
if (ok_count == 2) {
// MATCH :-D
}
else {
// NO MATCH :-(
}
答案 2 :(得分:0)
您可以使用类似
的内容function setValue(){
var canRun = true,
accepted = {
graphic: ["radeon hd", "nvidia"],
gname: ["prince of persia", "grand theft auto"],
gpc: ["radeon hd 121", "nvidia 121"],
procesor: ["intel i7", "intel i5", "intel i3"],
os: ["Windows 7", "Windows 8", "Windows xp"],
ram: ["4 Gb", "8 Gb", "12 Gb"]
};
for(var i in accepted){
// If you have modified `Object.prototype`, you should also check
// `accepted.hasOwnProperty(i)`
if(accepted[i].indexOf(document.forms['myform'][i].value) === -1) {
canRun = false;
break;
}
}
alert(canRun ? "yes this game can run" : "No, This game cannot run");
}
答案 3 :(得分:0)
看起来您正在尝试查看提交的值是否在有效值范围内。只需使用Array.prototype.indexOf。
if (graphic.indexOf(myVariable1) >= 0 && ram.indexOf(myVariable2) && ...) {
canRun = true;
}
上面的代码说:如果graphic
数组包含从表单提交的值,请将其标记为有效(并检查其他字段)。
我很喜欢Underscore,你也可以使用它。
if (_.contains(graphic, myVariable1) && _.contains(ram, myVariable2) && ...) {