如何使用javascript将数字转换为字符?

新手上路,请多包涵

如何转换 1234567890 = ABCDEFGHIJ ,例如。 360 to CFJ

我知道如何为单个字符执行此操作:

 var chr = String.fromCharCode(97 + n); // where n is 0, 1, 2 ...

但不确定如何一次对多个/一组数字执行此操作:例如。 230 to BCJ

原文由 Syed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 373
2 个回答

这会起作用:

 function convert(num) {
    return num
        .toString()    // convert number to string
        .split('')     // convert string to array of characters
        .map(Number)   // parse characters as numbers
        .map(n => (n || 10) + 64)   // convert to char code, correcting for J
        .map(c => String.fromCharCode(c))   // convert char codes to strings
        .join('');     // join values together
}

console.log(convert(360));
console.log(convert(230));

只是为了好玩,这里有一个使用 Ramda 的版本:

 const digitStrToChar = R.pipe(
    Number,                      // convert digit to number
    R.or(R.__, 10),              // correct for J
    R.add(64),                   // add 64
    R.unary(String.fromCharCode) // convert char code to letter
);

const convert = R.pipe(
   R.toString,            // convert number to string
   R.split(''),           // split digits into array
   R.map(digitStrToChar), // convert digit strings to letters
   R.join('')             // combine letters
);

console.log(convert(360));
console.log(convert(230));
 <script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>

原文由 JLRishe 发布,翻译遵循 CC BY-SA 3.0 许可协议

fromCharCode 接受参数列表作为参数。

String.fromCharCode(72, 69, 76, 76, 79); 例如将打印“HELLO”。

但是您的示例数据无效。例如,字母“A”是 65。您需要创建一个以逗号分隔的参数,并将其输入到函数中。如果您不将其作为逗号分隔的 arg 提供,您将尝试解析一个很可能会失败的关键代码。

原文由 Adrian 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题