Итак, продолжая вчера, я пришел к выводу, что полностью переосмысливаю проблему. Повторюсь, я должен был взять строку слов и вернуть самое длинное слово в качестве количества символов; число. Во вчерашней истории я подробно описываю, как преобразовал слова в массив, а затем в числа, представляющие количество символов в каждом слове. Затем я продемонстрировал довольно сложный способ сравнения длин слов в массиве; это решение, однако, не сработало.

Решение, оказывается, намного проще, чем то, что я пытался.

Ключ к ответу заключался в том простом факте, что я мог переназначать значения переменной. Я не рассматривал возможность простой перезаписи значений таким образом. Чтобы закончить решение проблемы, все, что мне нужно было сделать, это объявить переменную longestWord и присвоить ей значение ноль, поскольку все счетчики символов больше нуля. Оттуда нужно было настроить функцию для замены значения longestWord каждый раз, когда она встречала число, которое было больше, чем хранящееся там в настоящее время:

for (let i = 0; i < strLengthArr.length; i++) {
  if (strLengthArr[i] > longestWord) {
    longestWord = strLengthArr[i];
  }
}

Итак, чтобы разобрать:

for (let i = 0; i < strLengthArr.length; i++) {

Команда for указывает функции перебирать массив в цикле, пока не придет к конечному свойству, начиная с первого индекса, [0]. Затем я настроил оператор if, чтобы определить, нужно ли что-то делать с longestWord:

if (strLengthArr[i] > longestWord) {
    longestWord = strArr[i];
  }

Если значение длины слова по заданному индексу [i] больше, чем значение, хранящееся в настоящее время в longestWord, то сравниваемое значение заменит текущее значение, хранящееся в longestWord. Если нет, то эта возможность замены игнорируется.

Оттуда я просто вернул longestWord, чтобы выполнить задание:

return longestWord;

Итак, полное решение:

function findLongestWord(str) {
  let strArray = str.split(' ');
  let strLengthArr = [];
  for (i = 0; i < strArr.length; i++) {
    strLengthArr.push(strArray.length[i]);
  }
  for (let i = 0; i < strLengthArr.length; i++) {
  if (strLengthArr[i] > longestWord) {
    longestWord = strLengthArr[i];
    }
  }
  return longestWord;
}

Честно говоря, какая боль в заднице! Я имею в виду, что этот подход гораздо более элегантен, чем тот, который я себе представлял, но время и усилия, которые потребовались, чтобы прийти к этому, были нонсенсом. В конце концов, это все процесс обучения. Пора переходить к следующему вызову.