2017-02-16 14 views
1

У меня есть массив чисел, и некоторые из них имеют начальные нули. Как я могу сделать их в строку без потери ведущих нулей?Как сохранить ведущий ноль при внесении его в строку в Javascript?

var array = [10, 00002, 30, 400, 5000]; 
array[1].toString; // would be 2 instead of 0002 as JS drops leading zeros 

Я смотрел другие решения (JavaScript Number preserve leading 0, JavaScript: Keeping the leading zero in a number и JavaScript Number preserve leading 0), и все они предлагают сделать строку цифр.

Но в моем случае цифры в массиве будут предоставлены пользователем, поэтому, когда они проходят через .toString, они теряют ведущие нули.

Как я могу обойти это так, когда я нарежьте первые 2 цифры каждого элемента они окончательный массив будет:

var twoDigitArray = ["10", "00", "30", "40", "50"]; 

?

+3

Знаете ли вы, что ведущие нули в JS означает восьмеричной, то есть 0012 === 10 – Musa

+0

Как получить их от пользователя? Если он находится во входном или другом элементе формы, то они начинают строку. – KevBot

+0

Ведущие нули не имеют существенного значения. Вам нужно понять разницу между внутренним числовым значением, которое используется для вычисления и форматом отображения на основе строк, который является украшением. Существует причина, по которой все эти решения используют строки для сохранения ведущих нулей. Вход пользователя должен храниться в строке, которую вы, как программист, можете преобразовать по мере необходимости. – fnostro

ответ

0

Вы можете создать функцию нулевого заполнения

function zeroFill(number, width) { 
    width -= number.toString().length; 
    if (width > 0) { 
    return new Array(width + (/\./.test(number) ? 2 : 1)).join('0') + number; 
    } 
    return number.toString(); 
} 

И тогда вы можете порезать ваш номер вернулся

number.slice(0, 2); 
+0

это не работает. вы попробовали? – andi

Смежные вопросы