请注意,在你的代码中的错误。您在if
条件下正在使用赋值运算符=
,而您应该使用相等运算符==
。此外,您正在使用ids.push[randomNumber]
,而您应该使用ids.push(randomNumber)
。下面是一个工作的功能和代码片段:
function generateId()
{
if(ids.length >= 10)
{
alert("max length reached.");
console.log(ids);
return ids;
}
else
{
var randomNum = Math.floor((Math.random()*10) + 1);
if(ids.indexOf(randomNum) > -1)
{
return generateId();
}
else
{
ids.push(randomNum);
console.log(ids);
}
}
};
var ids = [];
function generateId()
{
if(ids.length >= 10)
{
alert("max length reached.");
console.log(ids);
return ids;
}
else
{
var randomNum = Math.floor((Math.random()*10) + 1);
if(ids.indexOf(randomNum) > -1)
{
return generateId();
}
else
{
ids.push(randomNum);
console.log(ids);
}
}
};
<button id="generate" onclick="generateId()">Generate Id</button>
应该是'如果(randomNum == ids.indexOf(randomNum))' –
甚至''=== .. – Cerbrus
我不明白这条线应该做什么。如果在数组中找到随机数并且该数字的位置与数字相同?它应该是'ids.indexOf(randomNum)=== -1'(或'!== -1')吗? – JJJ