function camelize(str) { // на вход приходит строка
return str // вот тут пока ещё строка
.split('-') // здесь из этой строки сделали массив, разбив её по символу дефиса
// ниже пошёл массив ["lol", "kek", "cheburek"]
.map((word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1)) // что-то сделали с каждым элементом массива
.join(''); // соединяет ['my', 'Long', 'Word'] в 'myLongWord'
}
Теперь упростим непонятную строку.
К ней пришёл массив, у которого вызывается метод
map()
– он просто применит функцию в нём к каждому элементу массива. На выходе получится новый массив.
.map((word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1)) //**
// то же самое, что:
.map(
function(word, index) {
return index == 0 ? word : word[0].toUpperCase() + word.slice(1);
}
)
// то же самое, что:
.map(
function(word, index) {
if (index == 0) {
return word;
} else {
return word[0].toUpperCase() + word.slice(1);
}
}
)
Метод массива
.map()
вызывает функцию, которая в нём аргументом, для каждого элемента массива и передёт в неё следующие три параметра:
- Текущий обрабатываемый элемент массива.
- Индекс текущего обрабатываемого элемента в массиве.
- Массив, по которому осуществляется проход.