如何在JavaScript中将3位数字颜色代码扩展为6位数字颜色代码?

3位数字颜色代码是6位数字颜色代码的简写形式,其中每个数字都重复以形成完整的6位代码。例如,#03f 等同于 #0033ff

这些简写代码非常常见,但在编程中使用它们时会带来一些挑战。因此,通常需要将它们转换为完整的6位形式

你只需要重复每个数字的3位代码以形成6位代码。可以使用 Array.prototype.map()String.prototype.split()Array.prototype.join() 的组合来完成这个操作。

为了考虑到输入字符串可能以 # 开头的情况,如果存在 #,可以使用 Array.prototype.slice() 来从字符串的开头移除 #

const extendHex = shortHex =>
  '#' +
  shortHex
    .slice(shortHex.startsWith('#') ? 1 : 0)
    .split('')
    .map(x => x + x)
    .join('');

extendHex('#03f'); // '#0033ff'
extendHex('05a'); // '#0055aa'