Первая задача заключалась в том, чтобы повторить самое длинное слово в строке, которую я сделал на днях, но на этот раз с использованием цикла For Of вместо цикла For.

function longestWordLength (str) {
  var stringWithoutSpecialCharacters = str.replace(/\W/g, ' ');
  var longestWord = '';
  var wordArray = stringWithoutSpecialCharacters.split(' ');
  for (var count of wordArray) {
    if (count.length > longestWord.length){
      longestWord = count;
    }
  
  }
  return longestWord.length;
}
console.log(longestWordLength('Hi, where is the airport?'));//returns 7
console.log(longestWordLength('Thanks for stopping by'));// returns 8

Большая часть кода была точно такой же, просто вместо цикла For в коде, полученном на днях, используется цикл For Of.

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

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

Для этой задачи я использовал метод разделения, чтобы разбить строку на отдельные буквы, затем отсортировал ее в алфавитном порядке, а затем снова соединил. Мой код выглядел так:

function alphaOrder(str){
  var sortedString = str.split("").sort().join("");
  return sortedString;
}
console.log(alphaOrder('hello')); returned "ehllo"
console.log(alphaOrder('goodbye')); returned "bdegooy"

Опять же, этот код можно разделить на разные этапы или, как показал инструктор, его можно сделать немного аккуратнее:

function alphaOrder(str){
  return str.split("").sort().join("");
}
console.log(alphaOrder('hello')); returned "ehllo"
console.log(alphaOrder('goodbye')); returned "bdegooy"

Я был очень воодушевлен тем, что нашел это задание легким и смог справиться с ним довольно быстро и без посторонней помощи.

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

function alphaOrder(str){
  return [...str].sort().join("");
}
console.log(alphaOrder('hello'));
console.log(alphaOrder('goodbye'));

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

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

function filterArray(arr){
  var onlyNumber = arr.filter(function(item){
    return typeof item === 'number';
  })
  return onlyNumber;
}
console.log(filterArray([1, 2, 'a', 'b'])); //returns [1, 2]

Он также рассказал, как можно сделать код более аккуратным, используя код с жирной стрелкой из ES6.

function filterArray(arr) {
 return arr.filter(item => typeof item === 'number')
}
console.log(filterArray([1, 2, 'a', 'b'])); //returns [1, 2]

Сейчас я официально прошёл половину курса Udemy (https://www.udemy.com/javascript-the-basics-for-beginners), ура!!! И это хороший момент, чтобы оставить это на сегодня