Ответ 1
Используйте String()
:
var number = 132943154134;
// convert number to a string, then extract the first digit
var one = String(number).charAt(0);
// convert the first digit back to an integer
var one_as_number = Number(one);
Когда я хочу выбрать n-й символ, я использую метод charAt(), но какой эквивалент я могу использовать при работе с целыми числами вместо строковых значений?
Используйте String()
:
var number = 132943154134;
// convert number to a string, then extract the first digit
var one = String(number).charAt(0);
// convert the first digit back to an integer
var one_as_number = Number(one);
Это глупое решение, но, похоже, работает без преобразования в строку.
var number = 123456789;
var pos = 4;
var digit = ~~(number/Math.pow(10,pos))- ~~(number/Math.pow(10,pos+1))*10;
Вы можете преобразовать число в строку и сделать то же самое:
parseInt((number + '').charAt(0))
Если вы хотите использовать существующий метод, преобразуйте его в строку и используйте charAt.
Если вы хотите использовать метод, позволяющий преобразовать его в строку, вы можете играть в игры с делением на 10 раз, чтобы отделить достаточное количество цифр справа - скажем, для 123456789, если вам нужна цифра 3-го справа (6), разделите на 10 3 раза, получив 123456, затем возьмите результат mod 10, дающий 6. Если вы хотите начать подсчет цифр слева, что вы, вероятно, делаете, то вам нужно знать, сколько цифр (база 10) во всем количестве, которое вы могли бы вывести из базы 10 журнала номера... Все это вряд ли будет более эффективным, чем просто преобразование его в строку.
function digitAt(val, index) {
return Math.floor(
(
val / Math.pow(10, Math.floor(Math.log(Math.abs(val)) / Math.LN10)-index)
)
% 10
);
};
digitAt(123456789, 0) // => 1
digitAt(123456789, 3) // => 4
Немного беспорядочно.
Math.floor(Math.log(Math.abs(val)) / Math.LN10)
Вычисляет количество цифр (-1) в числе.
var num = 123456;
var secondChar = num.toString()[1]; //get the second character
в JQuery
var number = 123456789
function return_digit(n){
r = number.toString().split('')[n-1]*1;
return r;
}
return_digit(3); /* returns 3 */
return_digit(6); /* returns 6 */