问题描述
我发现此代码生成唯一的随机数。我不明白这部分代码的作用-更重要的是,为什么我们需要=== -1
?据我所知,它不能等于-1。
var arr = [];
while(arr.length < 8){
var r = Math.floor(Math.random() * 100) + 1;
if(arr.indexOf(r) === -1) arr.push(r);
}
console.log(arr);
解决方法
它的意思是“当在数组中找不到元素时,将元素推入数组”。
arr.indexOf(r) === -1
->当元素不在数组中时,这将是正确的。那是因为数组中没有元素的索引为-1。第一个元素的索引为0,然后为1,2,3,依此类推。
也许最好使用include():
if(!arr.includes(r))
这使条件更易读。
,它检查“ r”是否已在数组中。如果是这样,它将不会将“ r”推入/添加到数组arr中。