Javascript 访问for循环中的动态变量名

Javascript 访问for循环中的动态变量名,javascript,Javascript,我对for循环“tostring”迭代有一个基本问题 说明: 共有12个容器 我想检测用户何时在12个容器中的任意3个容器中写入siword 如果用户键入si整整3次,我会设置一个名为的警报,这是您发出的 问题: 很可能该行不正确:if(cube[i].includes(“si”) 不知道如何检查for循环中的所有容器,只是为了计算siword的数量。(将数字添加到for循环中的字符串以调用其他变量,例如cube1、cube2、cube3等) 任何帮助都将不胜感激,谢谢:) 函数转换(){ va

我对for循环“tostring”迭代有一个基本问题

说明:

  • 共有12个
    容器
  • 我想检测用户何时在12个容器中的任意3个容器中写入
    si
    word
  • 如果用户键入
    si
    整整3次,我会设置一个名为
    的警报,这是您发出的
  • 问题:

  • 很可能该行不正确:
    if(cube[i].includes(“si”)
  • 不知道如何检查for循环中的所有容器,只是为了计算
    si
    word的数量。(将数字添加到for循环中的字符串以调用其他变量,例如cube1、cube2、cube3等)
  • 任何帮助都将不胜感激,谢谢:)

    函数转换(){
    var cube1=document.getElementById(“cube\u slot1”).value;
    var cube2=document.getElementById(“cube_slot2”).value;
    var cube3=document.getElementById(“cube_slot3”).value;
    var cube4=document.getElementById(“cube_slot4”).value;
    var cube5=document.getElementById(“cube_slot5”).value;
    var cube6=document.getElementById(“cube_slot6”).value;
    var cube7=document.getElementById(“cube\u slot7”).value;
    var cube8=document.getElementById(“cube\u slot8”).value;
    var cube9=document.getElementById(“cube\u slot9”).value;
    var cube10=document.getElementById(“cube\u slot10”).value;
    var cube11=document.getElementById(“cube\u slot11”).value;
    var cube12=document.getElementById(“cube_slot12”).value;
    var计数器=0;
    
    for(var i=1;i也许您可以简化您的方法,但在for循环中迭代元素(通过动态
    id
    ),并计算在输入值中找到
    si
    子字符串的次数

    如果遇到三种或三种以上的情况,请显示警报(),然后提前中断循环:

    函数转换(){
    对于(变量i=1;i=3){
    警惕(“你成功了!”);
    打破
    }
    }
    
    }
    也许您可以简化您的方法,但是在for循环中迭代元素(通过动态
    id
    ),并计算在输入值中找到
    si
    子字符串的次数

    如果遇到三种或三种以上的情况,请显示警报(),然后提前中断循环:

    函数转换(){
    对于(变量i=1;i=3){
    警惕(“你成功了!”);
    打破
    }
    }
    
    }
    您没有名为
    cube
    的数组,这正是
    cube[i]
    试图访问的内容。请使用数组而不是12个单独的变量!您没有名为
    cube
    的数组,这正是
    cube[i]的内容
    正在尝试访问。请使用数组而不是12个单独的变量!也许给所有元素指定一个类会使使用getElementsByClassName()更容易@PabloMáximo是的,如果在标记中定义了一个公共类,那么这将是一种理想的方法。您还可以使用queryselectorall:和循环遍历标记中的每个元素return@Dacre丹尼更优雅的方法和工作。非常感谢你教我。@ StAXO163,不客气,很高兴我能帮助。请考虑接受这个ANSW。呃(通过单击白色箭头)如果您发现它有帮助:-)也许给所有元素提供一个类会使使用getElementsByClassName()@PabloMáximo变得更容易是,如果在标记中定义了一个公共类,那么这将是一种理想的方法。您还可以使用queryselectorall:and循环遍历标记中的每个元素return@Dacre丹尼的方法更优雅,也更有效。非常感谢你教我。@ StAXO163,不用客气,很高兴我能帮助你。如果你觉得它有用的话,请考虑接受这个答案(点击白色箭头):
    function transmute() {
      var cube1 = document.getElementById("cube_slot1").value;
      var cube2 = document.getElementById("cube_slot2").value;
      var cube3 = document.getElementById("cube_slot3").value;
      var cube4 = document.getElementById("cube_slot4").value;
      var cube5 = document.getElementById("cube_slot5").value;
      var cube6 = document.getElementById("cube_slot6").value;
      var cube7 = document.getElementById("cube_slot7").value;
      var cube8 = document.getElementById("cube_slot8").value;
      var cube9 = document.getElementById("cube_slot9").value;
      var cube10 = document.getElementById("cube_slot10").value;
      var cube11 = document.getElementById("cube_slot11").value;
      var cube12 = document.getElementById("cube_slot12").value;
      var counter = 0;
    
      for (var i = 1; i <= 12; i++) {
        if (cube[i].includes("si")) {
          counter += 1;
        }
      }
      if (counter == 3) {
        alert("You made it!");
      }
    }