Sym - 一个用 Java 实现的现代化社区平台 • 源码 • 注册

Pipe - 小而美的开源博客平台 • 体验 • 皮肤
Solo - 一个用 Java 实现的博客系统,为你或你的团队创建个博客吧! • 源码下载 
Wide - 一个基于 Web 的 Go 语言 IDE • 教程试用

0 篇文章

  每天 30 秒系列之 JavaScript 代码

精选常见代码集,帮助您提高打码效率 📚数组 allallEqualanyarrayToCSVbifurcatebifurcateBychunkcompactcountBycountOccurrencesdeepFlattendifferencedifferenceBydifferenceWithdropdropRightdropRightWhiledropWhileeveryNthfilterFalsy

功能 - 限制函数的参数个数

2019-03-23 描述创建一个最多接受 n 个参数的函数,他可以忽略任何多余的参数。提示参数 fn 为提供的函数,n 为函数最多接受的参数的个数,可使用 Array.prototype.slice(0,n)和扩展运算符...。代码 constary=(fn,n)=>(...args)=>fn(...args.slice(0,n));示例依次获取长度不同的数组中的前 2 位中较大的值:constfirstTwoMax

功能 - 调用对象属性的方法

2019-03-24 描述根据输入的关键字和一组参数使返回的函数可以根据传入的参数去执行关键字方法。提示使用闭包调用传入的关键字和一组参数。使用柯里化函数。代码 constcall=(key,...args)=>context=>context[key](...args);示例对数组进行计算并返回其结果:call('map',x=>2*x)([1,2,3])//[2,4,6]Promise.resolv

功能 - 对函数依次调用每一个传入的参数

2019-03-25 描述将使用数组为参数的函数修改为使用可变参数的函数。提示接受该函数 fn 为参数并返回一个闭包函数闭包函数使用扩展运算符将所有输入作为数组传入 fn 函数中。代码 constcollectInto=fn=>(...args)=>fn(args);示例对多个异步请求的返回进行输出处理:constp1=Promise.resolve(1);constp2=newPromise(resolve=

功能 - 参数位置更改

2019-03-26 描述使用函数作为参数,然后将该函数的第一个参数作为最后一个参数。提示使用扩展运算符接受第二个及以后的参数返回一个接受可变参数的闭包函数,并交换输入参数的位置代码 constflip=fn=>(first,...rest)=>fn(...rest,first);示例对象合并:leta={name:'JohnSmith'};letb={};constmergeFrom=flip(Obj

功能 - 传入的函数都使用同一参数运行

2019-03-27 描述创建一个函数,该函数可以使用传入的每一个方法来接收的给定的可扩展参数作为参数执行后并返回结果。提示使用 Array.prototype.map()和 Function.prototype.apply()将传入的函数进行迭代并应使用给定的参数。代码 constover=(...fns)=>(...args)=>fns.map(fn=>fn.apply(null,args));示例获取

功能 - 传入的参数应用到指定函数中

2019-03-28 描述创建一个函数,使其可以调用提供的函数和参数进行转换。提示使用 Array.prototype.map()让传入的转换函数能够一一对应接受传入的参数。通过扩展运算符将组装好的转换函数传给 fn。代码 constoverArgs=(fn,transforms)=>(...args)=>fn(...args.map((val,i)=>transforms[i](val)));示例依次计算

功能 - 异步函数管道

2019-03-29 描述为输入的异步函数进行从左到右的依次执行。提示对接受的函数参数使用扩展运算符后便可用 Array.prototype.reduce()来执行从左到右的函数组合。为接受的异步函数使用 Promise.then()。接受的函数参数可以返回以下组合:简单值,Promise,或者定义为 async 函数且通过 await 返回的异步值。所有函数必须是一元的。代码 constpipeAsyncFunc

功能 - 函数管道

2019-03-30 描述从左到右依次执行传入的函数组合。提示对接受的函数参数使用扩展运算符后便可用 Array.prototype.reduce()来执行从左到右的函数组合。第一个(最左边)函数可以接受一个或多个参数,剩下的函数只能为一元函数。代码 constpipeFunctions=(...fns)=>fns.reduce((f,g)=>(...args)=>g(f(...args)));示例对参数

功能 - 对异步函数使用 promise

2019-03-31 描述转换异步函数使其返回 promise。提示使用柯里化返回一个函数,该函数返回一个调用原始函数的 Promise。使用扩展运算符传入所有的参数。在 Node8+ 中,你可以使用 util.promisify 代码 constpromisify=func=>(...args)=>newPromise((resolve,reject)=>func(...args,(err,result)=>(e

功能 - 按指定索引进行排序

2019-04-01 描述创建一个函数,调用他提供的函数就可让传入的数组根据提供的索引进行排序。提示使用 Array.prototype.map()基于根据扩展运算符组合的 indexes 对传入的参数进行重新排序,以便将最终结果展开作为参数传到 fn 中。代码 constrearg=(fn,indexes)=>(...args)=>fn(...indexes.map(i=>args[i]));示例对传入的参数按

功能 - 柯里化展开

2019-04-02 描述传入一个参数可变的函数后返回一个闭包,该闭包接受一个数组作为参数,并且可以将参数展开后输入到一开始传入的函数中。提示使用扩展运算符展开传入的数组参数后并把其用闭包输入到 fn 中。代码 constspreadOver=fn=>argsArr=>fn(...argsArr);示例求数组中的最大值:constarrayMax=spreadOver(Math.max);arrayMax(

功能 - 仅接受一个参数

2019-04-03 描述创建一个函数,使其仅接受一个函数,忽略其他额外的参数。提示调用提供的方法:fn,使其只接受一个参数。代码 constunary=fn=>val=>fn(val);示例字符串数组转为整数数组:`['6','8','10'].map(unary(parseInt));//[6,8,10]` 返回总目录每天 30 秒系列之 JavaScript 代码

功能 - 属性检测

2019-12-18 描述传入一个 predicate 函数和一个 prop 字符串,然后使用柯里化函数将通过属性调用检查的 object 传递给 predicate。提示获取 obj 对象中的 prop 值将获取的值传递给已提供好的 predicate 函数最终返回该函数的真假值代码 constcheckProp=(predicate,prop)=>obj=>!!predicate(obj[prop]);示例检测对象的长度是否

功能 - 属性方法绑定

2020-01-10 描述创建一个函数,使其可以调用指定对象中的属性方法,并且还可以支持将后续提供的任意参数作为柯里化函数中的单一参数。提示返回一个使用 Function.prototype.apply()绑定 context[fn]为 context 的 function 使用扩展运算符...展开后续提供的任意参数和单一参数作为 function 中的参数代码 constbindKey=(context,fn,...

功能 - 函数聚合

2020-01-13 描述接受一个聚合函数和一个使用列表保存的分支函数作为参数,每一个分支函数都使用相同的参数进行运行,并将运行结果展开作为聚合函数的参数,最终返回该聚合函数运行的结果。提示使用 Array.prototype.map()和 Function.prototype.apply()让每一个函数都使用传入的参数进行运行使用扩展运算符(...)将所有其他的函数结果做为参数传递给 coverger 代码

功能 - 重复调用函数

2020-01-14 描述使用迭代函数和初始值构建一个数组。提示使用 while 循环和 Array.prototype.push()重复的调用函数,直到返回 false 迭代函数只接受一个参数 seed,他每次运行后要么返回包含两个元素的数组[value,nextSeed],要么返回终止标志 false 代码 constunfold=(fn,seed)=>{letresult=[],val=[null,seed];w