javascript 使用参数作为“for each”的一部分

6ioyuze2  于 2023-08-02  发布在  Java
关注(0)|答案(2)|浏览(126)

我尝试创建一个简单的脚本,将RGB-16颜色转换为RGB-8。该脚本的工作,但由于某种原因,我无法找出如何将其转换为功能,使它将工作的两个不同的调色板。使用palette.forEach会导致错误。这个问题似乎很容易理解,但我就是看不出来。

const system41 = [
  [65535, 65535, 65535],
  [64512, 62333,  1327],
  [65535, 25738,   652]
];

const system7 = [
  [65535, 65535, 52428],
  [65535, 52428, 39321],
  [52428, 39321, 26214]
];

function convert(palette) {
    palette.forEach((child) => {
        const rgb8 = child.map(value => Math.round(value / 257));
        document.querySelector('#' + palette).innerHTML += rgb8.join(', ') + '\n';
    });
}

convert('system41');
convert('system7');

个字符

42fyovps

42fyovps1#

将数组存储在一个对象中,这样就可以执行字符串查找。

const palettes = {
  system41: [
    [65535, 65535, 65535],
    [64512, 62333, 1327],
    [65535, 25738, 652]
  ],
  system7: [
    [65535, 65535, 52428],
    [65535, 52428, 39321],
    [52428, 39321, 26214]
  ]
};

function convert(palette) {
  palettes[palette].forEach((child) => {
    const rgb8 = child.map(value => Math.round(value / 257));
    document.querySelector('#' + palette).innerHTML += rgb8.join(', ') + '\n';
  });
}

convert('system41');
convert('system7');

个字符

57hvy0tb

57hvy0tb2#

第一件事是,你应该在函数convert()中定义palette之后立即记录它,你会看到为什么你不能实现它的原因。

相关问题