由于 Javascript 中的字符串是不可变的,我如何使用用户的输入进行转换?
我试图使用一个函数将十六进制颜色代码的数字更改为十进制数字,但遇到了字符串的不可变属性。我尝试使用“for”将每个字符复制到数组中,但新数组仍然无法操作。这是我想要做的代码示例:
var user_input = prompt("Please enter an hexadecimal color code:","e.g. A876FF");
var hexa_to_dec = function(hexa_code)/*changes each digit from hexadecimal to decimal*/
{
for(i = 0; i < hexa_code.length; i++)
{
if (isNaN(hexa_code[i]))
{
switch(hexa_code[i])
{
case "A" : hexa_code[i] = 10; break;
case "B" : hexa_code[i] = 11; break;
case "C" : hexa_code[i] = 12; break;
case "D" : hexa_code[i] = 13; break;
case "E" : hexa_code[i] = 14; break;
case "F" : hexa_code[i] = 15; break;
}
}
}
document.write(hexa_code);
}
hexa_to_dec(user_input);
最佳答案
似乎应该有一种更简单的方法来做到这一点,例如只需将字符串操作的结果写回到同一个变量
var user_input = prompt("Please enter an hexadecimal color code:","e.g. A876FF");
user_input = user_input.replace(/[ABCDEF]/g, function(x) {
return {A:10,B:11,C:12,D:13,E:14,F:15}[x];
});
document.body.innerHTML = user_input;
关于javascript - 如何解决 Javascript 中字符串的不变性问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28193182/