获取2位数字中的n位数

Ano*_*ous 6 javascript numbers digit

例如,在"256"中获得"5".我得到的最接近的是Math.floor(256/10)),但这仍然会返回前面的数字.有没有简单的方法来获得我想要的东西,或者我必须为它做一个大功能?另外,为清楚起见:将定义"n位".例如,getDigit(2,256)将返回5(第二位数)

kem*_*002 11

怎么样

(12345 + "")[3] 
Run Code Online (Sandbox Code Playgroud)

要么

(12345 + "").charAt(3)
Run Code Online (Sandbox Code Playgroud)

从另一端算起

[length of string - digit you want] 所以,如果你想要它2:

5 - 4 = 1 
(12345 + "")[1] = "2"


function getNumber (var num, var pos){
  var sNum = num + "";

  if(pos > sNum.length || pos <= 0){return "";}

  return sNum[sNum.length - pos]; 

}
Run Code Online (Sandbox Code Playgroud)


Dan*_*lau 11

Math.floor((256 / 10) % 10)
Run Code Online (Sandbox Code Playgroud)

或更一般地说:

Math.floor(N / (Math.pow(10, n)) % 10)
Run Code Online (Sandbox Code Playgroud)

其中N是要提取n的数字,是数字的位置.请注意,这从0开始从右边开始计数(即最低有效数字= 0),并且不考虑无效值n.


lon*_*day 6

首先,您需要将数字转换为字符串,然后您可以正常访问该字符:

var num = 256;
var char = num.toString()[1]; // get the 2nd (0-based index) character from the stringified version of num
Run Code Online (Sandbox Code Playgroud)

编辑:还要注意,如果要在不先将数字设置为变量的情况下访问它,则需要一个双点..来访问该函数:

var char = 256..toString()[1];
Run Code Online (Sandbox Code Playgroud)

第一个点告诉翻译"这是一个数字"; 第二个访问该功能.