gpt4 book ai didi

javascript - 使用迭代器将 HEX 转换为 RGB - 比使用 .forEach 更好的方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:11:19 24 4
gpt4 key购买 nike

我创建了一个相当丑陋的函数来将十六进制转换为 rgb,我真的不喜欢我使用 .forEach 的方式以及在迭代之前定义空数组的需要。

我觉得应该有更好的方法来做我不知道的事情?我已经尝试过 .reducemap 和其他一些方法,但我需要返回一个新数组并将所有其他字符推送到它。

const rgba = (hex, alpha) => {
const pairs = [...hex.slice(1, hex.length)];
const rgb = [];
pairs.forEach((char, index) => {
if (index % 2 !== 0) return;
const pair = `${char}${pairs[index + 1]}`;
rgb.push(parseInt(pair, 16));
});

return `rgba(${rgb.join(', ')}, ${alpha})`;
};

最佳答案

也许你可以这样做;

function hex2rgb(h){
return "rgb(" + [(h & 0xff0000) >> 16, (h & 0x00ff00) >> 8, h & 0x0000ff].reduce((p,c) => p+","+c) + ")";
}

console.log(hex2rgb(0xffffff));
console.log(hex2rgb(0x12abf0));
console.log(hex2rgb(0x000000));

关于javascript - 使用迭代器将 HEX 转换为 RGB - 比使用 .forEach 更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com