あなたのコードにエラーがあるのでご注意ください。 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