我有一个生成数字的函数,我将它推入我的数组,但生成的数字总是0,为什么?
function generateId()
{
var randomNum = Math.floor((Math.random()*10) + 1);
if(randomNum = ids.indexOf(randomNum))
{
return generateId();
};
ids.push[randomNum];
return randomNum;
};

答案 0 :(得分:1)
请注意您的代码中存在错误。您在=
条件中使用赋值运算符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>
&#13;