我正在尝试在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;
}
}