2014-09-22 2 views
0

Эй, ребята, работая над проблемой из CoderBytes. Направления:Цитирование по строке чисел в Javascript

Использование языка JavaScript имеет функцию DashInsert (num), вставляя дефис ('-') между двумя нечетными номерами в num. Например: если число равно 454793, выход должен быть 4547-9-3. Не считайте ноль нечетным числом.

Используйте функцию проверки параметров в поле ниже, чтобы проверить свой код с различными аргументами.

Так что я не создал функцию, но вот моя дорожная карта.

num = 3333333333 
arr = num.toString().split("") 
for(var i = 0; i < arr.length; i++){ 
    if(arr[i] % 2 === 1 && arr[i + 1] % 2 === 1){ 
     num.toString().replace(arr[i].toString() + arr[i+1].toString(), 
        arr[i].toString() + "-" + arr[i+1].toString()) 
    } 

    } 

Дело в том, что, когда я запускаю это, оно только ставит тире между двумя первыми двумя. Я действительно не могу понять, почему это происходит. Кто-нибудь знает, где я ошибаюсь?

+0

с запятой (';') ваш друг! – jasonscript

ответ

3

Вот, это простое решение должно делать хорошо:

var num = 3434333333 
var arr = num.toString().split(""); 
var finalStr = ""; 
for(var i = 0; i < arr.length; i++){ 
    if(arr[i] % 2 === 1 && arr[i + 1] % 2 === 1){ 
     finalStr += arr[i] + "-"; 
    } 
    else { 
     finalStr += arr[i]; 
    } 
} 

просто сохранить строку результата, если два последовательных числа нечетные добавить дополнительный «-» после числа в строке, в противном случае просто добавьте число и окончательная строка будут содержать желаемый результат.

See the DEMO here

+0

Очень круто. Благодаря! – theamateurdataanalyst

+0

приветствуются и не забудьте отметить правильный ответ (: –

+0

Предел должен быть 'i RobG

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