我有一个解决方案,但看起来很乱,希望有更好的方法:
编写返回数字的第n位数字的函数
/*
Write a function that returns the nth digit of a number
digitN(498, 1) // 8
digitN(498, 10) // 9
digitN(498, 100) // 4
*/
function digitN(number, base){
if(base === 1){
return number % 10;
}
if(base === 10){
return Math.floor((number % 100) / 10);
}
if(base === 100){
return Math.floor((number % 1000) / 100);
}
}
console.log(digitN(498, 100))
如果传递位置而不是base * 10
,则只需将数字转换为字符串并像数组一样操作:
digitN(498, 1); // 8
digitN(498, 2); // 9
digitN(498, 3); // 4
function digitN(number, position) {
strNumber = '' + number;
digit = strNumber[strNumber.length - position];
console.log(digit);
return digit;
}
使用deceze的思想>
function digitN(number, base){
return Math.floor((number % (base * 10)) / base);
}
像这样...
您可以将值除以base
,然后得到其余值的整数值十。
将其转换为字符串的厚颜无耻的解决方案: