Кодинг — это весело
Из фейсбука:
«Какой язык учить после английского?»
«Python или Javascript»
С декабря неспешно прохожу курс на «JavaScript: основы и современныe возможности языка» на Нетологии и это довольно весело.
Курс состоит из серии вебинаров с несколькими преподавателями. Смотришь вебинар (в трансляции или записи — как удобно), проходишь небольшой тест и делаешь домашку, подсматривая в презентацию. До меня доходит не сразу, поэтому еще лазаю на Современный учебник Javascript
— для таких как я там всё разжевано до мелочей.
В свободное от вебинаров и домашки время делаю упражнения на CodeWars. Там есть система «прокачки» и тебе предлагаются упражнения согласно твоему уровню. Больше всего нравится после выполнения смотреть как его решили другие участники.
В то время как я строчу три функции и уже сам путаюсь в передаче переменных туда-сюда, ребята решают всё в две строчки. Кодинг в общем и JS в частности — это весело!
Для примера мой вариант:
function anagrams(word, words) {
function countLtrs(word) {
let ltrs = [];
for (let i=0; i < word.length; i++) {
if (word[i] in ltrs) {
ltrs[word[i]]++;
} else {
ltrs[word[i]] = 1;
}
}
return ltrs;
}
let ltrsOne = countLtrs(word), result = [], check = true;
for (let word of words) {
let ltrsTwo = countLtrs(word), check = true;
for (let key in ltrsTwo) {
if (key in ltrsOne) {
if (!(ltrsOne[key] === ltrsTwo[key])) {
check = false;
}
} else check = false;
}
if (check) result.push(word);
}
console.log(result);
}
30 строчек.
И «лучший» вариант:
String.prototype.sort = function() {
return this.split("").sort().join("");
};
function anagrams(word, words) {
return words.filter(function(x) {
return x.sort() === word.sort();
});
}
5 строчек. А так можно было?
В общем, разница очевидна! Будем учиться далее :)