Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.05.2022, 16:32
Аспирант
Отправить личное сообщение для dc65k Посмотреть профиль Найти все сообщения от dc65k
 
Регистрация: 19.05.2020
Сообщений: 46

Как правильно передать параметры в pipe?
Всем привет. Подскажите, пожалуйста, как на основании статьи:
https://www.freecodecamp.org/news/pi...-5b04004ac937/
правильно изменить функцию pipe, чтобы можно было передавать в передаваемые функции аргументы?
console.log(pipe(getName, upperCase, getNumChars(3), reverse)(igor)); // Error


const igor = {
    name: 'igor',
}

const getName = person => person.name;

const upperCase = str => str.toUpperCase();

const get3Chars = str => str.substring(0, 3);
const getNumChars = (str, n) => {
    // console.log('str', str)
    // console.log('n', n)

    return str.substring(0, n)
}

const reverse = str => str.split('').reverse().join('');

// Solution
const pipe = (...fns) => init => fns.reduce((value, f) => f(value), init);

const fn = pipe(getName, upperCase, get3Chars, reverse);
console.log(fn(igor)); // OGI

console.log(pipe(getName, upperCase, get3Chars, reverse)(igor)); // OGI
console.log(pipe(getName, upperCase, getNumChars(3), reverse)(igor)); // Error
Ответить с цитированием
  #2 (permalink)  
Старый 11.05.2022, 17:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,160

Сообщение от dc65k
getNumChars(3)
str => getNumChars(str, 3)

Оно?
const igor = {
	name: 'igor',
}
const getName = person => person.name;
const upperCase = str => str.toUpperCase();
const get3Chars = str => str.substring(0, 3);
const getNumChars = (str, n) => {
	// console.log('str', str)
	// console.log('n', n)
	return str.substring(0, n)
}
const reverse = str => str.split('').reverse().join('');
// Solution
const pipe = (...fns) => init => fns.reduce((value, f) => f(value), init);
const fn = pipe(getName, upperCase, get3Chars, reverse);
console.log(fn(igor)); // OGI
console.log(pipe(getName, upperCase, get3Chars, reverse)(igor)); // OGI
console.log(pipe(getName, upperCase, str => getNumChars(str, 3), reverse)(igor)); // Error

Последний раз редактировалось ksa, 11.05.2022 в 17:08.
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2022, 18:06
Аспирант
Отправить личное сообщение для dc65k Посмотреть профиль Найти все сообщения от dc65k
 
Регистрация: 19.05.2020
Сообщений: 46

Да, спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно передать props в React? s24344 Элементы интерфейса 0 29.06.2019 13:44
Как правильно передать html в javascript? gsdev99 Элементы интерфейса 3 11.06.2019 18:14
как правильно обращаться к свойствам объект внутри самого объекта ? mitiya Общие вопросы Javascript 12 25.04.2015 21:18
как правильно отслеживать вставку html() bombascter jQuery 15 20.11.2012 09:47
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14