Training JS






42 задания на базовые понятия языка JavaScript
http://www.codewars.com/kata/571ec274b1c8d4a61c0000c8

Other Katas series:

- Coding 3 Minutes Series

- Shortest Code Series

- Fastest Code Series

- Thinking and Testing Series

- Play Game Series

- Pattern Series
Конструкция switch

function howManydays(month){ switch (month){ case 2: return 28 case 4: case 6: case 9: case 11: return 30 } return 31 }
http://www.codewars.com/kata/572059afc2f4612825000d8a/solutions/javascript

Сделать первую букву заглавной

var str="this is an example."; var result=str[0].toUpperCase()+str.slice(1); result; // "This is an example."

Так проще: var str="this is an example."; var result=str.replace(str[0],str[0].toUpperCase()); result; // "This is an example."

http://www.codewars.com/kata/5728203b7fc662a4c4000ef3

Сделать первую букву заглавной в каждом слове

var str="this is an example."; var words=str.split(" "); for (var i=0;i<words.length;i++){ words[i]=words[i][0].toUpperCase()+words[i].slice(1); } words.join(" "); // "This Is An Example."

Так проще
var str="this is an example."; var result=str.replace(/\b\w/g,x=>x.toUpperCase()); result; // "This Is An Example."

Здесь /\b\w/g - регулярное выражение
\b - символ начала слова
\w - любая буква
/g - флвг global, который ищет все совпадения
x=>x - стрелочная функция внутри регулярного выражения

Регулярные выражения
https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Regular_Expressions

Создать независимую копию JavaScript массива
var arr = ["a", "b", "c"]; var newArr = arr.slice();

Источник https://noteskeeper.ru/1/ +понравилось оформление сайта по ссылке

slice()
splice()
split()

Эти три функции существенна осложняют жизнь путаясь между собой
Как бы мне их запомнить?

slice() с английского переводится как "кусочек", ближайший русский аналог - "слайсы"
Метод slice() возвращает новый массив, содержащий копию части исходного массива.
arr.slice([begin[, end]])

Кстати, c его помощью можно скопировать массив полностью. Вот так:
var newArr = arr.slice()

splice() означает "сращивание".  Русских аналогов не придумаю.
Метод splice() изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые.
array.splice(start, deleteCount[, item1[, item2[, ...]]])
Например
var myFish = ['ангел', 'клоун', 'мандарин', 'хирург'];
myFish.splice(2, 0, 'барабанщик'); // ['ангел', 'клоун', 'барабанщик', 'мандарин', 'хирург']
Начиная со второго элемента удаляет 0 элементов и перед вторым добавляет 'барабанщик'

Включаем мнемонику для запоминания
splice() отличается от slice() буквой р внутри. Эти методы очень похожи, но slice()только режет (на слайсы), а splice() режет и ещё что-то вставляет (букву р).

split() переводится как "трещина"
Метод split() разбивает объект String на массив строк путём разделения строки указанной подстрокой.