const sub = (a, b) => a - b;
const reverseSub = flip(sub);
sub(5, 3); // 2
reverseSub(5, 3); // -2
const flip(f) => (a, b) => f(b, a);
identity(v => v)('run'); // run
// (v => v)(v => v)('run') // run
export default (str, index = 0, substrLength = str.length) => {
if (index >= str.length) { // если начальный индекс выходит за границу слова справа,
return ''; // то возвращаем пустую строку
}
// В учительском решении нормализация сводится к подготовке всего двух переменных:
// currentIndex и lastIndex — они формируют диапазон,
// из которого будет складываться итоговая подстрока.
// определяем, где находится первый элемент (его позиция в str)
// формируемой подстроки
const currentIndex = index < 0 ? 0 : index;
// определяем, где находится последний элемент (его позиция в str)
// формируемой подстроки
let lastIndex = currentIndex + (substrLength - 1);
if (substrLength < 0) { // обрабатываем ситуацию, когда substrLength отрицателен
lastIndex = currentIndex;
} else if (lastIndex > str.length - 1) { // если конечный индекс выходит за границу строки,
lastIndex = str.length - 1; // то считаем, что он равен индексу последнего элемента в str
}
// генерируем подстроку result,
// "вырезая" её из исходной строки str
let result = '';
for (let i = currentIndex; i <= lastIndex; i += 1) {
result = `${result}${str[i]}`;
}
return result;
};
// определяем, где находится последний элемент (его позиция в str)
// формируемой подстроки
let lastIndex = currentIndex + (substrLength - 1);
(items1, items2) => (
items1.filter((item) => !items2.includes(item))
);
function getFreeDomainsCount(arr){
let result = [];
let count = 0;
for(let i = 0; i < freeEmailDomains.length; i += 1){
for (let j = 0; j < arr.length; j += 1){
if(freeEmailDomains[i] == arr[j].split('@')[1]){
count += 1;
}
}
result += count;
count = 0;
}
return result;
}
console.log(getFreeDomainsCount(emails));
const/let/var a = что-то;
const/let/var b = что-то;
А это function(a, b) в качестве объявление, я не понимаю. Где, в какой статье, рассказано, про такое объявление?