2013-10-19 82 views
0

嘿,我试图做一个数组,它会读取所有的内容,然后检查与用户提供的内容,但它是如此的发生,当我选择“ATI Radeon HD 2600概述”它的工作原理但是当我选择“ATI的Radeon X1950系列”或其任何内容后,它并不能工作,只是挂了整个系统这里是代码Array无法读取

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

缩进怎么办?这是来自你的编辑器还是错误的复制/粘贴? – elclanrs

+0

哪个标识 – user2826868

+2

确切:(:(你说) – mplungjan

回答

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

+0

谢谢你的工作 – user2826868