1

在javascript中获取数字的第N位的最佳方法是什么?

例如,对于31415926,如果 ,函数将返回 1 N=2

编辑:如果可能的话,你直接返回一个数字,而不是一个字符串。

编辑2:从左到右。

4

3 回答 3

3

尝试使用 :(''+number)[nth]或者(''+number)[nth-1]如果基于一个。

于 2013-08-01T14:45:29.377 回答
2

就个人而言,我会使用:

function getNthDigit(number, n){
    return parseInt((""+number).charAt(n));
}

但是,如果您不希望它以字符串形式出现,您可以使用:

function getNthDigit(number, n){
    var num = number,
        digits = 0;
    do{
        num /= 10;
        digits++;
    }while(num>=1);

    num = number / Math.pow(10, (digits - n));
    num -= num % 1;

    return (num % 10);
}

再三考虑,只需使用第一个选项。

于 2013-08-01T15:41:28.270 回答
0

更新:我没有考虑到它是从右边开始计算的。我的错!

无论如何,考虑到输入仍然是一个字符串,我会使用相同的函数,只是稍微调整一下。

为什么不使用CharAt 函数?考虑到多字节字符串的风险,我认为是最好的选择!!!

编辑:我忘记了这个例子:

  var str = "1234567";
  var n = str.charAt(str.length-2); // n is "6"
于 2013-08-01T14:48:56.433 回答