2016-07-27 11 views
-2

私は数値を生成し、それを私の配列にプッシュしていますが、生成される数値は常に0です、なぜですか?ランダム番号は常に0

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

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

 
    ids.push[randomNum]; 
 

 
    return randomNum; 
 
};

+5

は 'すべきか(randomNum == ids.indexOf(randomNum))' –

+1

あるいは '===' .. – Cerbrus

+1

とにかくその行が何をすべきか分かりません。乱数が配列内にあり、その数の位置が数値と同じ場合は??それは 'ids.indexOf(randomNum)=== -1'(または'!== -1')でなければなりませんか? – JJJ

答えて

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>

+0

エラーが修正されましたMohit、生成された番号が存在する場合は配列内を検索しようとしていますが、別の番号を生成して配列に追加する必要があります。あなたの返信tho :)ありがとうございました。 –

+0

@ GoddamnRooTありがとう。しかし、私のソリューションにも含まれているコードスニペットのチェックがすでにあります。このコードを試しましたか? –