js函数组合
挑选多个函数,把它们拼接在一起,返回新函数,实现函数公共合作的效果。 将函数组合在一起,就像将一连串管道扣合在一起,让数据流过一样。简而言之,函数 f 和 g 的组合可以被定义为 f(g(x)),从内到外(从右到左)求值。
function compose(f, g){
return function(x){
return f(g(x));
}
}
function toUpperCase(str){
return str.toUpperCase();
}
function add(str){
return str+"!";
}
var f = compose(add, toUpperCase);
f("hello");
函数组合,循环参数
function compose(){
var args = Array.prototype.slice.call(arguments);
var len = args.length - 1;
return function(x){
// 调用最后一个函数
var result = args[len](x)
while(len--){
result = args[len](result)
}
return result;
}
}
var f = compose(add, toUpperCase)
f("hello");
reduceRight优化
reduce/reduceRight
// 若init有值则start开始为init,此时next为数组第一个元素。否则start为数组第一个元素,此时next为数组第二个元素
array.reduce(callback(start, next, arr), init)
// reduceRight从后往前遍历
// 若init有值则start开始为init,此时next为数组最后一个元素。否则start为arr最后的值,此时next为倒数第二个元素composeReduce实现
function composeReduce(){
var args = Array.prototype.slice.call(arguments);
return function(x){
return args.reduceRight((res, cb) => {
return cb(res);
}, x)
}
}
var f = composeReduce(add, toUpperCase)
f("hello");
继续优化
const composeReduce2 = (...args) => (x) => args.reduceRight((res, cb) => cb(res), x)
Ценники на вывоз мусора сейчас космос, любые лайфхаки по экономии в тему.
1xbet onlayn kazino platforması ilə vaxtınızı daha səmərəli və maraqlı keçirin. Saytın canlı kazino bölməsi istifadəçilərə fərqli bir dünya təklif edir. Burada canlı dilerli kazino oyunlarının hər bir növünü sınaqdan keçirə bilərsiniz. Krupyelərin peşəkarlığı oyunun dinamikasını və marağını artırır. Müntəzəm olaraq yenilənən oyun siyahısı cansıxıcılığa yol vermir. Hesabınızı artırmaq üçün onlarla fərqli və etibarlı üsul mövcuddur. Qazanılan pullar cəmi bir neçə dəqiqə ərzində şəxsi hesabınıza köçürülür. Aktiv fəaliyyətinizə görə fərdi bonuslar və hədiyyələr qazana bilərsiniz. Dəstək xidməti həm çat, həm də e-poçt vasitəsilə kömək göstərir. 1xbet ailəsinə qoşulun və böyük uduşlar üçün ilk addımı atın. onlayn kazino
我一直梦想, 看到你们相册那样的地方。真棒。
我喜欢, 这里分享真实经验。你的项目 就是 属于这里的。请继续。
我热爱这样的想法, 去那么多国家。真的很鼓舞。
能感受到热爱。继续保持 感受。
我关注这样的资源, 写得很实在。你的网站 就是 属于这里的。加油。
1
1
1