javascript - 如何解决 Javascript 中字符串的不变性问题?

标签 javascript string immutability

由于 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;

FIDDLE

关于javascript - 如何解决 Javascript 中字符串的不变性问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28193182/

相关文章:

javascript - 关于dojo/dijit/dojox的问题

c++ - 如何计算两个玩家之间的回文游戏的总分?

immutability - 我如何强制结构的字段在 Rust 中始终不可变?

c - malloc 内存中的数据损坏

c# - 如何在 C# 中正确处理字符串?

Javascript 通过引用和 React 中的 props 传递

swift - 无法修改函数体内的函数参数

javascript - 如何在我使用ul和li标签的情况下使用jQuery Datatable实现分页

javascript - 使用设置为 ng-click 的变量来更改模板

javascript - jQuery 验证插件在检查用户名时抛出错误