返回数字中第n位数字的最佳方法?

问题描述 投票:0回答:5

我有一个解决方案,但看起来很乱,希望有更好的方法:

编写返回数字的第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))
javascript
5个回答
1
投票

如果传递位置而不是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;
}

0
投票

使用deceze的思想>

function digitN(number, base){

    return Math.floor((number % (base * 10)) / base);

}

0
投票

像这样...


0
投票

您可以将值除以base,然后得到其余值的整数值十。


0
投票

将其转换为字符串的厚颜无耻的解决方案:

© www.soinside.com 2019 - 2024. All rights reserved.