Javascript 如何正确使用ES6?
说我有Javascript 如何正确使用ES6?,javascript,Javascript,说我有 const toUpperCase = word => word.toUpperCase(); const reverse = word => word.split('').reverse().join('') const toLowerCase = word => word.toLowerCase(); 我该怎么做呢 const transformWord = word => toUpperCase(word) => reverse(word) =>
const toUpperCase = word => word.toUpperCase();
const reverse = word => word.split('').reverse().join('')
const toLowerCase = word => word.toLowerCase();
我该怎么做呢
const transformWord = word => toUpperCase(word) => reverse(word) => toLowerCase(word)
console.log(transformWord('abcdefg')) // expected output: gfedcba
您可以使用一系列函数,并对它们进行
缩减
:
const toUpperCase=word=>word.toUpperCase();
const reverse=word=>word.split(“”).reverse().join(“”)
const toLowerCase=word=>word.toLowerCase();
const transformWord=word=>[toUpperCase,reverse,toLowerCase].reduce((lastVal,fn)=>fn(lastVal),word);
console.log(transformWord('abcdefg')//预期输出:gfedcba
您可以使用管道函数,通过使用参数减少给定函数
const
管道=(…函数)=>input=>functions.reduce((acc,fn)=>fn(acc,input),
toUpperCase=word=>word.toUpperCase(),
reverse=word=>word.split(“”).reverse().join(“”),
toLowerCase=word=>word.toLowerCase(),
transformWord=管道(大写、小写、倒小写);
log(transformWord('abcdefg')//预期输出:gfedcba
我看不出这与咖喱有什么关系。我认为您只是在寻找函数组合:
const transformWord = word => toLowerCase(reverse(toUpperCase(word)))
使用递归方法编写curry函数。如果传递转换函数,Curry函数将返回一个函数,当传递单词时,它将返回所有转换并返回结果单词。最后一件事只有一句话
transformWord(processA)(processB)(processN)(word)
const toUpperCase=word=>word.toUpperCase();
const reverse=word=>word.split(“”).reverse().join(“”)
const toLowerCase=word=>word.toLowerCase();
const transformWord=arg=>{
常量队列=[arg];
恒电流=项目=>{
如果(项目类型==“字符串”){
让单词=项目;
while(queue.length>0){
const transform=queue.shift();
字=变换(字);
}
返回词;
}否则{
队列。推送(项目);
返回咖喱;
}
};
返回咖喱;
};
console.log(transformWord(toUpperCase)(反面)(toLowerCase)(“abcdefg”);
log(transformWord(toUpperCase)(“abcdefg”)代码>当然,您可以这样做:但是您必须为每个转换函数创建一个单独的管道函数。
const toUpperCase = word => word.toUpperCase();
const reverse = word => word.split('').reverse().join('')
const toLowerCase = word => word.toLowerCase();
const transformWord = word => toLowerCase(reverse(toUpperCase(word)));
console.log(transformWord('abcdefg')) //Output: gfedcba