本文介绍了如何使用javascript将数字转换为字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何转换 1234567890 = ABCDEFGHIJ
,例如 360到CFJ
我知道如何对单个字符执行此操作:
I know how to do it for single character:
var chr = String.fromCharCode(97 + n); // where n is 0, 1, 2 ...
但不确定如何一次对多个/一组数字进行处理:例如 230到BCJ
but not sure how can I do it for multiple/group of number at once: For eg. 230 to BCJ
推荐答案
这将起作用:
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 的版本:
And just for fun, here's a version using 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>
这篇关于如何使用javascript将数字转换为字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!