在while循环循环一次之前,while循环内的for循环是否会完全完成迭代?

时间:2017-11-23 14:43:16

标签: javascript arrays for-loop while-loop nested

我正在尝试在while循环中使用for循环,但for循环只执行一次。我的目标是使用for循环创建一个数组,然后使用while循环检查该数组是否重复值。我不太确定这是不是javascript如何循环,但我无法理解为什么会这样。当我运行此代码时,我收到一条错误,指出slotarr [1] .value未定义。

如果无法在while循环中完整地运行for循环,是否有任何变通方法?

var slotobj = {
  sloticon1 : {
    icon : ":bread:",
    value : 1
  },
  sloticon2 : {
    icon : ":custard:",
    value : 2
  }
}

  var slotarr = [];
  var done;
  var j = 0;
  var k = 8;
  while (done == false) {
    for (i = j; i <= k; i++) {
      slotarr[i] = Math.ceil(Math.random()*100);
      if (slotarr[i] <= 50) {
        slotarr[i] = slotobj.sloticon1;
      }
      else if (slotarr[i] > 50 && slotarr[i] <= 100) {
        slotarr[i] = slotobj.sloticon2;
      }
      else {
        i--;
      }
    }
    if ((slotarr[0].value == slotarr[1].value) || (slotarr[0].value == slotarr[2].value) || (slotarr[1].value == slotarr[2].value)) {
      j = 0;
      k = 2;
    }
    else if ((slotarr[3].value == slotarr[4].value) || (slotarr[3].value == slotarr[5].value) || (slotarr[4].value == slotarr[5].value)) {
      j = 3;
      k = 5;
    }
    else if ((slotarr[6].value == slotarr[7].value) || (slotarr[6].value == slotarr[8].value) || (slotarr[7].value == slotarr[8].value)) {
      j = 6;
      k = 8;
    }
    else {
      done = true;
    }
  }

0 个答案:

没有答案