return
키워드를 생략하여 작성// () 와 {}, return 키워드를 사용한 curring 작성
const curring = (arg1) => {
return (arg2) => {
return arg1 + arg2;
}
}
// 생략할 것 다 생략한 curring 작성
const curring = arg1 => arg2 => arg1+arg2;
🤔 그래서, 언제 쓰는거니?
함수가 인자를 여러번에 걸쳐 받아 실행해야 하는 상황!
왜 써?
함수의 재사용성을 높일수 있음
라이브러리와 같이 타인이 작성한 함수를 수정하지 않고 사용할 때 유용
map()
,filter()
,reduce()
,sort()
,reverse()
,slice()
를 커링으로 구현해보자!
map()
,filter()
,reduce()
,sort()
는 CB
인자를 받도록reverse()
: 인자 없음slice()
: 2개의 숫자 값을 인자로 받음const mapArray = (func) => (arr) => {
return arr.map(func);
};
const filterArray = (func) => (arr) => {
return arr.filter(func);
};
const reduceArray = (func, init) => (arr) => {
return arr.reduce(func, init);
};
const sortArray = (func) => (arr) => {
const newArr = [...arr];
return newArr.sort(func);
};
const reverseArray = () => (arr) => {
const newArr = [...arr];
return newArr.reverse();
};
const sliceArray = (start, end) => (arr) => {
return arr.slice(start, end);
};
const numberNames = mapArray((e, i) => {
return `${i + 1}. ${e}`;
});
음.. 책에 수록된 내용을 따라해봤지만, 실제로 어떻게 활용되는지 감이 잘 안잡힌다 😱... 실무에 쓰는 날이 오길