我被要求在 JavaScript 中创建一个将整数从以十为基数转换为另一个基数的方法,它还应该支持提供您的自定义数字数组。例如,
toBase(10, 2 ["A","B"])// returns 'BABA'
如果未提供数字数组,它应该作为 JavaScript 'toString' 方法工作
var a = 10;
a.toString(2);//returns '1010'
我编写了一个函数,可以将整数从基数 10 转换为另一个基数,并可以选择提供数字数组 -
function toBase(number, radix, digits)
{
radix = radix || 10;
digits = digits || "0123456789abcdefghijklmnopqrstuvwxyz".split("").slice(0, radix)
if (radix > digits.length) {
var msg = "Not enough digits to represent the number '" + number + "' in base " + radix;
throw Error(msg);
}
if (number === 0) return digits[0];
var a = []
while (number) {
a.splice(0, 0, digits[number % radix])
number = parseInt(number / radix);
}
return a.join("");
}
这个功能对我来说很好,但我想知道是否有更好的方法来做到这一点?谢谢。