获取数字的每个数字

时间:2013-08-01 14:43:53

标签: javascript performance built-in

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

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

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

编辑2 :从左到右。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

就个人而言,我会使用:

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);
}

第二个想法,只需使用第一个选项。

答案 2 :(得分:0)

更新:我没有考虑到它是从右边算起来的事实。我的坏!

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

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

编辑:我忘了这个例子:

  var str = "1234567";
  var n = str.charAt(str.length-2); // n is "6"