使用Javascript数组和循环在页面上以十六进制显示所有216种websafe颜色
我需要创建一个JavaScript函数,它使用数组来保存值:使用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',
[“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
可能很有趣。是的!我注意到了