在 JavaScript 中,您可以从数字生成字符串,如下所示:
(123).toString(36) // => "3f"
如果你尝试做任意基础:
(123).toString(40)
You get
Uncaught RangeError: toString() radix argument must be between 2 and 36
at Number.toString (<anonymous>)
at <anonymous>:1:7
想知道如何执行此操作来生成给定任意字母表的字符串。假设你有这个字母表:
abcdefghijklmnopqrstuvwxyz0123456789+-
那么它会是这样的:
toString(123, 'abcdefghijklmnopqrstuvwxyz0123456789+-')
它会打印出一些东西(我不知道是什么),例如3+
,从字母表中挑选。
想知道如何在 JavaScript 中做到这一点,不确定“基数”是否与它有关。谢谢。
Update: 也在寻找如何扭转它,又名fromString(string)
.
当你要求一个parseInt
对于任意长度,您可以使用给定的字符串并通过将前一个减少值乘以代码长度并加上代码字符位置的数值来减少它。
额外的是toString
提供的功能。
function parseInt(value, code) {
return [...value].reduce((r, a) => r * code.length + code.indexOf(a), 0);
}
function toString(value, code) {
var digit,
radix= code.length,
result = '';
do {
digit = value % radix;
result = code[digit] + result;
value = Math.floor(value / radix);
} while (value)
return result;
}
console.log(parseInt('dj', 'abcdefghijklmnopqrstuvwxyz0123456789+-'));
console.log(toString(123, 'abcdefghijklmnopqrstuvwxyz0123456789+-'));
console.log(parseInt('a', 'abcdefghijklmnopqrstuvwxyz0123456789+-'));
console.log(toString(0, 'abcdefghijklmnopqrstuvwxyz0123456789+-'));
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)