在javascript中获取数字的第N位的最佳方法是什么?
例如,对于31415926
,如果 ,函数将返回 1 N=2
。
编辑:如果可能的话,你直接返回一个数字,而不是一个字符串。
编辑2:从左到右。
在javascript中获取数字的第N位的最佳方法是什么?
例如,对于31415926
,如果 ,函数将返回 1 N=2
。
编辑:如果可能的话,你直接返回一个数字,而不是一个字符串。
编辑2:从左到右。
尝试使用 :(''+number)[nth]
或者(''+number)[nth-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);
}
再三考虑,只需使用第一个选项。
更新:我没有考虑到它是从右边开始计算的。我的错!
无论如何,考虑到输入仍然是一个字符串,我会使用相同的函数,只是稍微调整一下。
为什么不使用CharAt 函数?考虑到多字节字符串的风险,我认为是最好的选择!!!
编辑:我忘记了这个例子:
var str = "1234567";
var n = str.charAt(str.length-2); // n is "6"