保存循环的输入而不创建3个不同的变量

时间:2016-08-12 15:14:59

标签: javascript loops

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

我将此作为输入:

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

我想要的是这样:

rgb(165, 195, 231)

我做错了什么?

5 个答案:

答案 0 :(得分: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);      

答案 1 :(得分:0)

XElement

如果要存储三个值,则需要三个变量。

答案 2 :(得分: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) + ")";

答案 3 :(得分: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);        
}

这样你在技术上使用一个变量(一个整数值数组)来设置RGB值,它运行一个for循环来创建rgb数组(或者这可以在初始化时完成而不使用for循环,但是我觉得这看起来很整洁)。这也意味着每次运行外循环时都会重新初始化变量,因此在运行外循环的3倍时,你将得到不同的RGB。

答案 4 :(得分:-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);