10 04 月 2019 Array - chunk 2019-04-10 描述根据指定的大小把一个大数组分成一些较小的数组。提示使用 Array.from()创建一个新的小数组,用于存放大数组中符合条件的元素。使用 Array.prototype.slice()将大数组中的每个元素放入到一个长度为 size 的新的小数组中。如果原始的大数组无法进行平均分配,则将剩余的元素全部放入到最后一个新的小数组中。代码 constchunk=(arr,size)=>Arra
09 04 月 2019 Array - bifurcateBy 2019-04-09 描述使用函数把集合中的元素分为两组,可通过函数来指定输入其中的元素被划分到哪一组。如果该函数返回真值,集合中的元素就属于第一组,否则就属于第二组。提示使用 Array.prototype.reduce()和 Array.prototype.push()把元素添加到不同的组中。根据集合中的每一个元素在 fn 中的返回值来进行分组。代码 constbifurcateBy=(arr,fn)=>a
09 04 月 2019 Array - bifurcate 2019-04-08 描述把集合里面的元素分成两组。如果 filter 中的一个元素为真值时,在集合中与之相对应的元素就划分到第一组,否则就属于第二组。提示使用 Array.prototype.reduce()和 Array.prototype.push()把集合中的元素添加到对应的分组中。filter 需和集合中的元素保持一一对应。代码 constbifurcate=(arr,filter)=>arr.redu
07 04 月 2019 Array - arrayToCSV 2019-04-07 描述把二位数组转换为使用逗号分割值(CSV)的字符串。提示使用 Array.prototype.map()和 Array.prototype.join(delimiter)把一维数组转换为使用逗号分割的字符串。使用 Array.prototype.join('\n')将二维数组中的行组合为 CSV 字符串,每一行都使用换行符作为分割。第二个参数 delimiter 可省略,默认值为,。代码 co
06 04 月 2019 Array - any 2019-04-06 描述如果提供的函数对集合中的任意一个元素返回 true,那么就返回 true,否则返回 false。提示使用 Array.prototype.some()进行检测,如果 fn 对集合中的任意元素返回 true,那么就返回 true。第二个参数为 fn,默认值为 Boolean。代码 `constany=(arr,fn=Boolean)=>arr.some(fn);示例检测数组中的元素是否有满足条件的:
06 04 月 2019 Array - allEqual 2019-04-05 描述检测数组中的元素是否都相等。提示使用 Array.prototype.every()检测数组中的所有元素是否和第一个元素相等。代码 `constallEqual=arr=>arr.every(val=>val===arr[0]);示例检测数组中的元素是否相等:allEqual([1,2,3,4,5,6]);//falseallEqual([1,1,1,1]);//true 返回总目
04 04 月 2019 Array - all 2019-04-04 描述当提供的断言函数对集合中的所有元素都返回 true 时,就返回 true,否则返回 false。提示使用 Array.prototype.every()来测试集合中的所有元素在 fn 中是否返回 true。第二个参数为 fn,可使用 Boolean 作为默认值。代码 `constall=(arr,fn=Boolean)=>arr.every(fn);示例检测数组中的每一个元素是否都满足条件:all(
03 04 月 2019 功能 - 仅接受一个参数 2019-04-03 描述创建一个函数,使其仅接受一个函数,忽略其他额外的参数。提示调用提供的方法:fn,使其只接受一个参数。代码 constunary=fn=>val=>fn(val);示例字符串数组转为整数数组:`['6','8','10'].map(unary(parseInt));//[6,8,10]` 返回总目录每天 30 秒系列之 JavaScript 代码
02 04 月 2019 功能 - 柯里化展开 2019-04-02 描述传入一个参数可变的函数后返回一个闭包,该闭包接受一个数组作为参数,并且可以将参数展开后输入到一开始传入的函数中。提示使用扩展运算符展开传入的数组参数后并把其用闭包输入到 fn 中。代码 constspreadOver=fn=>argsArr=>fn(...argsArr);示例求数组中的最大值:constarrayMax=spreadOver(Math.max);arrayMax(
01 04 月 2019 功能 - 按指定索引进行排序 2019-04-01 描述创建一个函数,调用他提供的函数就可让传入的数组根据提供的索引进行排序。提示使用 Array.prototype.map()基于根据扩展运算符组合的 indexes 对传入的参数进行重新排序,以便将最终结果展开作为参数传到 fn 中。代码 constrearg=(fn,indexes)=>(...args)=>fn(...indexes.map(i=>args[i]));示例对传入的参数按
01 04 月 2019 功能 - 对异步函数使用 promise 2019-03-31 描述转换异步函数使其返回 promise。提示使用柯里化返回一个函数,该函数返回一个调用原始函数的 Promise。使用扩展运算符传入所有的参数。在 Node8+ 中,你可以使用 util.promisify 代码 constpromisify=func=>(...args)=>newPromise((resolve,reject)=>func(...args,(err,result)=>(e