我很抱歉,我没有理解JS中do ... while循环的行为。
假设我们有以下代码:
var a = [1,2,3,4,5];
var b = [];
var c;
do {c = a[Math.floor(Math.random()*a.length)];
b.push(c);}
while(c===4);
console.log(b);
这段代码的意图是从数组a
中随机选择一个元素,如果该元素不是4
,则将其添加到数组b
中。但是,如果我们多次执行此操作,我们会发现它实际上并没有阻止4
进入数组b
。为什么?我以为它应该像这样工作:
- 从数组
a
中随机选择一个元素,将其存储在c
中,并将c
推入b
中; - 检查
(c===4)
是否为true
; - 如果是-转到第1步;
- 如果不是-将
b
记录到控制台。
我错在哪里了?为什么这段代码会以这种方式工作?如果这种方法不能帮助我,“禁止”某个元素被随机选择到数组中的其他方法是什么(除了过滤数组)?
b
的值是什么类型的? - Xion Dark