Показать сообщение отдельно
  #3 (permalink)  
Старый 28.03.2021, 13:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,754

А так не проще?
const pipe = (value, ...funcs) => {
	try {
		return funcs.reduce ((v, f) => f(v), value)
	} catch (err) {
		return err;
	}
};
 
const replaceUnderscoreWithSpace = (value) => value.replace(/_/g, ' ');
const capitalize = (value) =>
value
    .split(' ')
        .map((val) => val.charAt(0).toUpperCase() + val.slice(1))
        .join(' ');
const appendGreeting = (value) => `Hello, ${value}!`;
 
const error = pipe('john_doe', replaceUnderscoreWithSpace, capitalize, '');
 
alert(error); // Provided argument at position 2 is not a function!
 
const result = pipe('john_doe', replaceUnderscoreWithSpace, capitalize, appendGreeting);
 
alert(result); // Hello, John Doe!
Ответить с цитированием