Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确使用ES6?_Javascript - Fatal编程技术网

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