当前位置: 首页 > 后端技术 > Node.js

Lodash学习笔记——Chunk函数

时间:2023-04-03 12:44:18 Node.js

百忙之中(无事可做),想抽点时间仔细阅读一下源码,于是选择了Lodash来写一个系列。阅读源码的顺序按照loadsh文件的顺序。文档地址:中文文档英文文档源码地址:gayhub_.chunk(array,[size=1])将array数组拆分成多个size长度的块,将这些块组成一个新的数组。如果不能将数组拆分成所有等长的块,那么最后剩下的元素将组成一个块。例子:chunk(['a','b','c','d'],2)//=>[['a','b'],['c','d']]chunk(['a','b','c','d'],3)//=>[['a','b','c'],['d']]一个有用的函数,我们看具体实现:可以看到,chunk依赖slice.js,具体实现分析前面已经说了:入口importslicefrom'./slice.js'第一个参数验证size=Math.max(size,0)constlength=array==null?0:array.lengthif(!length||size<1){return[]}根据length/size四舍五入确定新的数组长度,并在循环slice中调用slice函数,最后返回结果letindex=0letresIndex=0constresult=newArray(Math.ceil(length/size))while(index[['a','b'],['c','d']]**chunk(['a','b','c','d'],3)*//=>[['a','b','c'],['d']]*/functionchunk(array,size){size=Math.max(size,0)constlength=array==null?0:array.lengthif(!length||size<1){return[]}letindex=0letresIndex=0constresult=newArray(Math.ceil(length/size))while(index