是否有 优雅 方式将某些字符串转换为二进制并获得固定长度的结果?
内置函数是:parseInt(str, 10).toString(2)
,但它缩短了长度。
例如,如果我想要长度= 8位,那么myFunction("25")
将返回00011001
而不是11001
。
我知道我可以在开头添加零,但它对我来说似乎不是一种优雅的方式。
答案 0 :(得分:1)
似乎最优雅的方法是编写(或获取某个地方)缺少的抽象并将其组合以获得所需的结果。
// lodash has this function
function padStart(string, length, char) {
// can be done via loop too:
// while (length-- > 0) {
// string = char + string;
// }
// return string;
return length > 0 ?
padStart(char + string, --length, char) :
string;
}
function numToString(num, radix, length = num.length) {
const numString = num.toString(radix);
return numString.length === length ?
numString :
padStart(numString, length - numString.length, "0")
}
console.log(numToString(parseInt("25", 10), 2, 8));