随机数始终为0

时间:2016-07-27 06:51:06

标签: javascript html

我有一个生成数字的函数,我将它推入我的数组,但生成的数字总是0,为什么?



function generateId()
{
    var randomNum = Math.floor((Math.random()*10) + 1); 

    if(randomNum = ids.indexOf(randomNum)) 
    {
        return generateId();
    };

    ids.push[randomNum];

    return randomNum;
};




1 个答案:

答案 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;
&#13;
&#13;