2016-08-12 13 views
-1
for (var i = 0; i < 3; i++) { 
      var rgb = Math.floor(Math.random() * 255 + 1); 
      var randomRGB = ("rgb"+"("+rgb+","+rgb+","+rgb+")"); 
      console.log (randomRGB);   
     } 

を作成せずにループの入力Iが入力としてこれを取得しています:保存3つの異なる変数

rgb(165,165,165) 
rgb(195,195,195) 
rgb(231,231,231) 

私は何を取得したいと思いする代わりに、このです:

rgb(165, 195, 231) 

私は何間違っている?あなたがループ文なしでそれを行うことができます

答えて

0

あなたは、配列を使用してこれを行うことができます。この方法であなた

for (var i = 0; i < 3; i++) { 
    var rgb = []; 
    for (var i = 0; i < 3; i++){ 
     rgb.push(Math.floor(Math.random() * 255 + 1)); 
    } 
    var randomRGB = ("rgb"+"("+ rgb.join(",") +")"); 
    console.log (randomRGB);   
} 

」を技術的には1つの変数(整数値の配列)を使ってRGB値を設定すると、forループを実行してrgb arrを作成しますay(またはこれはforループを使わないで初期化することができますが、これはきれいに見えます)。これは、変数が外側ループを実行するたびに再初期化されていることを意味し、外側ループが実行された3回の異なるRGBで終了します。

-1

var getRgb =() => Math.floor(Math.random() * 255 + 1); 
var randomRGB = ("rgb"+"("+ getRgb() +","+ getRgb() + ","+ getRgb() +")"); 
console.log (randomRGB); 

あなたが好きですか反復によってそれをしたい場合は、

var getRgb =() => Math.floor(Math.random() * 255 + 1); 
var randomRGB = "rgb(" + (["","",""].map(getRgb) + ")" 
console.log (randomRGB); 
+0

私はループステートメントでそれをやりたいのですが、どうすればいいですか? – JohnSnow

+0

@Yunislav 'map'はその実装の中でループ文を使います。あなたが確かにforループを使用したいなら、以下の答えを好む。 –

0
var color = []; 
for (var i = 0; i < 3; i++) { 
    var rand = Math.floor(Math.random() * 255 + 1); 
    color.push(rand); 
} 
var randomRGB = ("rgb"+"("+ color.join(",") +")"); 
console.log (randomRGB);  
+0

ありがとうございました!これは私が探していたものです! – JohnSnow

+1

'var randomRGB =(" rgb "+"( "+ color +") ");'これで十分です。配列をプリミティブに変換するとき、配列のプロトタイプの 'toString()'はあなたのためにjoinを使用します.. –

+0

@RajaprabhuAravindasamyうわー、今回は、配列のプロトタイプがjoinを使用していることを本当に知りませんでした。それは私のためにたくさんのコードを保存することができました。情報ありがとうございます。 – Noldor

0
var r = Math.floor(Math.random() * 255 + 1); 
    var g = Math.floor(Math.random() * 255 + 1); 
    var b = Math.floor(Math.random() * 255 + 1); 
    var randomRGB = "rgb(" + r + "," + g + "," + b + ")"; 
    console.log (randomRGB);   

次の3つの変数の場合を必要とします3つの値を保存します。

0

このお試しください:

var r = Math.floor(Math.random() * 255 + 1); 
var g = Math.floor(Math.random() * 255 + 1); 
var b = Math.floor(Math.random() * 255 + 1); 
var randomRGB = "rgb(" + r + "," + g + "," + b + ")"; 
console.log (randomRGB); 

それとも、変数を作成しないようにしたいならば:

var randomRGB = "rgb(" + Math.floor(Math.random() * 255 + 1) + "," + Math.floor(Math.random() * 255 + 1) + "," + Math.floor(Math.random() * 255 + 1) + ")"; 
関連する問題