如何使用`reduce`将基数为10的数字转换为基数为24的数字?

时间:2016-07-28 15:50:31

标签: javascript ecmascript-6

我有10号基数1000,我想把它转换成24号基数。

[1, 17, 16]

如果我将它表示为一个数组,那么base-24数字是for,并且每个项目仍然使用一个基数为10的数字。

我认为使用let x = 1000; let base24 = []; for(let i=1;;i++) { let y = x % Math.pow(24,i); base24.unshift(y/Math.pow(24,i-1)); x = x - y; if(x===0) { break; } } console.log(base24); // output: [1, 17, 16] 来实现它并不困难:

for

但是可以不使用whilereduce来实现吗?例如,使用2016-07-28T13:39:13方法(来自ES6)?

1 个答案:

答案 0 :(得分:-1)

在ES5中的Juhanna评论中重做:

var toBase24 = function(n) {
    return n.toString(24).split("").map(function(x) { return parseInt(x, 24); });
};

用法:

var a = 1000;

var b = toBase24(a); // [1, 17, 16]