数组无法读取

时间:2013-10-19 08:06:58

标签: javascript

嘿,我正在尝试创建一个能够读取所有内容的数组,然后使用用户提供的内容进行检查,但是当我选择" ATI Radeon HD 2600概述"它可以工作,但当我选择" ATI Radeon X1950系列"或任何内容之后它不起作用它只是挂起整个系统这里是代码

function setValue() {
    myVariable = document.forms["myform"]["gname"].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 gname = ["Prince of Persia: The Forgotten Sands", "Gears of War", "yes"];
    var gpc = ["Radeon HD 2600 Pro", "GeForce 8600 GTS 512MB", "ATI Radeon 5000 Series", "ATI Radeon 4000 Series", "ATI Radeon 3000 Series", "ATI Radeon HD 2900 Overview", "ATI Radeon HD 2600 Overview", "ATI Radeon X1950 Series", "ATI Radeon X1800 Series", "ATI Radeon X1650 Series"];
    var procesor = ["Core 2 Duo E4500 2.2GHz", "Athlon 64 X2 Dual Core 4400+", "yes"];
    var ram = ["3 GB", "2 GB", "1 GB"];
    var os = ["Windows Xp", "Windows 7", "Windows Vista", "Windows 8"];
    var canRun = false;
    for (i = 0; i < gname.length; i++)
    if (myVariable === gname[i]) //changed from 0 to i here
    {
        for (i = 0; i < gpc.length; i++) {
            if (myVariable2 === gpc[i]) //changed from 0 to i here
            {
                for (i = 0; i < procesor.length; i++) {
                    if (myVariable3 === procesor[i]) //changed from 0 to i here
                    {
                        for (i = 0; i < ram.length; i++) {
                            if (myVariable4 === ram[i]) //changed from 0 to i here
                            {
                                for (i = 0; i < os.length; i++) {
                                    if (myVariable5 === os[i]) //changed from 0 to i here
                                    {
                                        //but when my input is in the array it can run
                                        canRun = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    if (canRun) {
        alert("yes this game can run");
    } else {
        alert("No, This game cannot run");
    }
};

1 个答案:

答案 0 :(得分:3)

由于循环变量i,在每个for循环中,您需要使用不同的循环变量,如i, j, k, l等......类似

function setValue() {
    myVariable = document.forms["myform"]["gname"].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 gname = ["Prince of Persia: The Forgotten Sands", "Gears of War", "yes"];
    var gpc = ["Radeon HD 2600 Pro", "GeForce 8600 GTS 512MB", "ATI Radeon 5000 Series", "ATI Radeon 4000 Series", "ATI Radeon 3000 Series", "ATI Radeon HD 2900 Overview", "ATI Radeon HD 2600 Overview", "ATI Radeon X1950 Series", "ATI Radeon X1800 Series", "ATI Radeon X1650 Series"];
    var procesor = ["Core 2 Duo E4500 2.2GHz", "Athlon 64 X2 Dual Core 4400+", "yes"];
    var ram = ["3 GB", "2 GB", "1 GB"];
    var os = ["Windows Xp", "Windows 7", "Windows Vista", "Windows 8"];
    var canRun = false;
    for (i = 0; i < gname.length; i++)
    if (myVariable === gname[i]) //changed from 0 to i here
    {
        for (j = 0; j < gpc.length; j++) {
            if (myVariable2 === gpc[j]) //changed from 0 to i here
            {
                for (k = 0; k < procesor.length; k++) {
                    if (myVariable3 === procesor[k]) //changed from 0 to i here
                    {
                        for (l = 0; l < ram.length; l++) {
                            if (myVariable4 === ram[l]) //changed from 0 to i here
                            {
                                for (m = 0; m < os.length; m++) {
                                    if (myVariable5 === os[m]) //changed from 0 to i here
                                    {
                                        //but when my input is in the array it can run
                                        canRun = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    if (canRun) {
        alert("yes this game can run");
    } else {
        alert("No, This game cannot run");
    }
};

演示:Fiddle