使用Javascript数组和循环在页面上以十六进制显示所有216种websafe颜色

使用Javascript数组和循环在页面上以十六进制显示所有216种websafe颜色,javascript,arrays,loops,Javascript,Arrays,Loops,我需要创建一个JavaScript函数,它使用数组来保存值:[“00”、“33”、“66”、“99”、“CC”、“FF”]。然后我需要在数组中循环,并在页面上以十六进制值显示所有216种web安全颜色。下面的代码是我到目前为止所拥有的,但我不确定是否要循环创建其余的数字 function displayColors() { var hex1; var hex2; var hex3; var clr; var steps = [ '00',

我需要创建一个JavaScript函数,它使用数组来保存值:
[“00”、“33”、“66”、“99”、“CC”、“FF”]
。然后我需要在数组中循环,并在页面上以十六进制值显示所有216种web安全颜色。下面的代码是我到目前为止所拥有的,但我不确定是否要循环创建其余的数字

function displayColors() {
    var hex1;
    var hex2;
    var hex3;
    var clr;
    var steps = [
        '00',
        '33',
        '66',
        '99',
        'cc',
        'ff' 
    ];
    var arrLength = steps.length;
    var counter = 1; // Make sure there are 216 colors displayed

        for (var b = 0; b < arrLength; b++) {
            hex1 = steps[b];
            hex2 = steps[b];
            hex3 = steps[b];
            clr = hex1 + hex2 + hex3;
            document.getElementById("display").innerHTML += 
                "<div>" + counter + ": " + clr + "</div>";
            counter++;
        }
}
函数displayColors(){
hex1变种;
var hex2;
var hex3;
var-clr;
变量步骤=[
'00',
'33',
'66',
'99',
“cc”,
“ff”
];
var arrLength=步长.length;
var counter=1;//确保显示216种颜色
对于(var b=0;b
将for循环更改为:

 for (var a = 0; a < arrLength; a++) {
        for (var b = 0; b < arrLength; b++) {
            for (var c = 0; c < arrLength; c++) {
                hex1 = steps[a];
                hex2 = steps[b];
                hex3 = steps[c];
                clr = hex1 + hex2 + hex3;
                document.getElementById("display").innerHTML += "<div>" + counter + ": " + clr + "</div>";
                counter++;
            }
        }
    }
for(var a=0;a
将for循环更改为:

 for (var a = 0; a < arrLength; a++) {
        for (var b = 0; b < arrLength; b++) {
            for (var c = 0; c < arrLength; c++) {
                hex1 = steps[a];
                hex2 = steps[b];
                hex3 = steps[c];
                clr = hex1 + hex2 + hex3;
                document.getElementById("display").innerHTML += "<div>" + counter + ": " + clr + "</div>";
                counter++;
            }
        }
    }
for(var a=0;a
这是您需要的循环:

这是小提琴:

var步骤=['00','33','66','99','cc','ff'];
对于(var i=0;i
这是您需要的循环:

这是小提琴:

var步骤=['00','33','66','99','cc','ff'];
对于(var i=0;i
如果您坚持使用数组,请查看-您可以将其用作笛卡尔(步骤、步骤、步骤).map(parts=>parts.join(“”)

但是,有一种比处理十六进制字符串数组更简单的方法。使用普通数字:

for (var r=0; r<=0xFF0000; r+=0x330000)
    for (var g=0; g<=0xFF00; g+=0x3300)
        for (var b=0; b<=0xFF; b+=0x33)
            console.log( (r|g|b).toString(16).padStart(6, "0") );

for(var r=0;r如果您坚持使用数组,请查看-可以将其用作笛卡尔(步骤、步骤、步骤).map(parts=>parts.join(“”)

但是,有一种比处理十六进制字符串数组更简单的方法。使用普通数字:

for (var r=0; r<=0xFF0000; r+=0x330000)
    for (var g=0; g<=0xFF00; g+=0x3300)
        for (var b=0; b<=0xFF; b+=0x33)
            console.log( (r|g|b).toString(16).padStart(6, "0") );

for(var r=0;抽象地说,您想显示数组中这些元素的每个组合吗?是的,这就是我的意思。一种颜色有6个字符?是的,它将是6个字符,例如输出将是“000000”、“000033”、“000066”,等等,实际上,您想显示数组中这些元素的每个组合?是的,这就是我的意思。一种颜色有6个字符?是的,它将是6个字符,例如输出将是“000000”、“000033”、“000066”,等等,谢谢你工作得很好。但是我不确定它到底是如何工作的?当它是一个单循环时,你只是沿着数组的同一索引移动每种颜色ff ff ff ff,00 00 00 00等等,你需要的是能够为3个位置中的每一个独立地单步遍历每个索引,因此3个为循环谢谢你工作得很好然而,我不确定它到底是如何工作的?当它是一个单循环时,你只是沿着数组的同一个索引移动每种颜色ff ff ff ff,00 00 00 00等等,你需要的是能够在3个位置中的每一个独立地通过每个索引,因此3个循环命名变量可能很有趣
r
g
b
。是的!我注意到命名变量
r
g
b
可能很有趣。是的!我注意到了