在javascript中获取数字的第N位数的最佳方法是什么?
例如,对于31415926
,如果N=2
,该函数将返回1。
编辑:如果可能,tu直接返回一个数字,而不是字符串。
编辑2 :从左到右。
答案 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"