Пожалуйста, обратите внимание, что ошибка в коде. Вы используете оператор назначения =
в своем 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