Почему мой код выводится неопределенным до обратной строки? - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь перевернуть строку, просматривая каждое слово и вставляя его в пустую строку.Затем программа выводит undefinedolleh.

function reverseString(str) {
  let final = "";
  for (let i = str.length; i >= 0; i--) {
    final += str[i];
  }
  return final;

}

console.log(reverseString("hello"));

Ответы [ 2 ]

3 голосов
/ 19 сентября 2019

Массивы и индексация строк начинаются с 0. Итак, вы пытаетесь получить доступ к позиции в str.length, которая не существует.

Начать с str.length-1:

function reverseString(str) {
  let final = "";
  for (let i = str.length-1; i >= 0; i--) {
    final += str[i];
  }
  return final;

}

console.log(reverseString("hello"));
0 голосов
/ 19 сентября 2019

Ваша проблема в том, что вы пытаетесь получить доступ к вашей строке за пределами.У строки есть индекс, который идет от 0 до string.length - 1.

Кстати, уже есть функция, которая обращается к массиву.Итак, чтобы перевернуть строку, вам просто нужно преобразовать ее в массив, перевернуть ее и преобразовать обратно в строку

console.log("hello".split("").reverse().join(""));
...