JavaScript заменить символ с циклом

1

Это должно быть просто, но я не уверен, почему он не работает:

function kebabToSnake (str){
    var string = "";
    var chart = "";
    for(i=0; i < str.lenght; i++){
        if (str.charAt(i) == "-") {
            chart = "_";
            string = string + chart;
        }
        else {
            chart = str.charAt(i);
            string = string + chart;
        }
    }
    return string
}

Я знаю, что могу сделать это с помощью str.replace( / -/g, "_"), но я не вижу, что случилось с вышеизложенным, кроме того, что он слишком длинный. Любая помощь будет большой.

  • 0
    пример для ввода и вывода?
  • 3
    @basement получил ответ. длина не длина
Показать ещё 1 комментарий
Теги:
loops
replace

2 ответа

3

Вы неправильно произвели "длину". (в строке 4)

Он работает после коррекции орфографии.

function kebabToSnake (str){
    var string = "";
    var chart = "";
    for(i=0; i < str.length; i++){  //fixed spelling from 'str.lenght'
        if (str.charAt(i) == "-") {
            chart = "_";
            string = string + chart;
        }
        else {
            chart = str.charAt(i);
            string = string + chart;
        }
    }
    return string
}

var body = document.querySelector( 'body' ),
    output = kebabToSnake( '-' ); //First test with '-' in conditional statement

body.innerHTML = output; //display to body

output = kebabToSnake( 'Another String' ); //Second test with random text triggering ELSE statement

body.innerHTML += '<br>' + output; //display to body
  • 0
    Lol Я не могу поверить, что я не заметил, это сводило меня с ума. Спасибо!!!
  • 0
    @ LucasA Пожалуйста, примите мой ответ, если он сработал для вас. (Галочка).
-1

Вы можете достичь этой цели, используя RegExp более кратко:

function kebabToSnake (str) {
    return str.replace(/-/g, '_');
}
  • 0
    'coz' - '- это специальный символ в RegExp, поэтому его следует экранировать, когда вы используете его в качестве простого символа для сопоставления.
  • 0
    Да, возможно, вы правы. Но на практике я всегда прошу своих программистов избегать этого, потому что это не оказывает негативного влияния на правильность.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню