一天一个仿lodash函数实现-chunk、compat、concat
从数组系列开始-chunk和compact
chunk给数组分组
按size设步长来遍历组装
function chunk(arr, size){
const result = [];
// 小于1,下面循环会有问题,也不合理
if(size<1){
return [];
}
for(let i=0;i<arr.length;i+=size){
result.push(arr.slice(i, i+size))
}
return result;
}
compact过滤数组中的falsey元素(false,null,0,"",undefined,NaN)
直接filter即可,falsey元素条件判断都为false
function compact(arr) {
return arr.filter(item=>item)
}
concat
function concat(arr, ...rest) {
return arr.concat(...rest)
}
lodash一般不用array的属性方法,而是for遍历,比如compact用了for of