本文介绍了如何使用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将数字转换为字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 09:55