Извините, я новичок в javascript и просто пытаюсь намочить ноги.

В прошлом я использовал join () без проблем, но по какой-то причине это соединение, похоже, возвращает пустую строку.

Информация в myArray представляется правильно отформатированной.

Любая помощь приветствуется. Благодарность!

  function titleCase(str) {
  var splitArray = str.split(" ");
  var myArray = [];
  var joinArray = myArray.join(' ');

  for (var i in splitArray) {
    myArray.push(splitArray[i].charAt(0).toUpperCase() + splitArray[i].slice(1).toLowerCase());
  }

  return joinArray;
}

titleCase("capitalize the first letter of each word in this string");
1
user3697269 15 Дек 2015 в 20:46

3 ответа

Лучший ответ

Вы определяете присоединиться к массиву до того, как массив будет заполнен. Попробуй переехать

var joinArray = myArray.join(' '); 

На линию раньше

return joinArray;
1
MCMXCII 15 Дек 2015 в 17:50

Я понял. Очевидно, положение имеет значение, и объединение происходило до того, как цикл for успел запуститься.

1
user3697269 15 Дек 2015 в 17:54

Вы присоединились к myArray до того, как в нем что-то было, а затем вернули его без изменений.

  function titleCase(str) {
    var splitArray = str.split(" ");
    var myArray = [];

    for (var i in splitArray) {
      myArray.push(splitArray[i].charAt(0).toUpperCase() + splitArray[i].slice(1).toLowerCase());
    }

    return myArray.join(' ');
  }

document.getElementById('result').innerHTML = titleCase("capitalize the first letter of each word in this string");
<p id="result"></p>
2
allicarn 15 Дек 2015 в 17:49