一天一个仿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

posted @ 2022-06-10 20:18  Dont  阅读(60)  评论(0编辑  收藏  举报