0

Hey i was trying to make an array that would read all the contents and then check it with the content provided by the user but it is so happening that when i select "ATI Radeon HD 2600 Overview" it works but when i select "ATI Radeon X1950 Series" or any content after that it does not work it just hangs the whole system here is the code

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");
    }
};
2
  • What happen to the indentation? Is that coming from your editor or bad copy/paste? Commented Oct 19, 2013 at 8:10
  • 2
    Exactly :( ............... Commented Oct 19, 2013 at 8:11

1 Answer 1

3

It is because of the loop variable i, in each for loop you need to use a different loop variable like i, j, k, l etc... something like

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");
    }
};

Demo: Fiddle

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.