lodash 基础篇chunk函数

先看一下基本用法
将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。

 var arrayList=[1,2,3,4,5,6,7];
 console.log(arrayList);//[1,2,3,4,5,6,7];
 console.log(_.chunk(arrayList,3)); //[[1,2,3],[4,5,6],[7]]

我们先看一下lodash的代码然后一行一行解读

function chunk(array, size) {
  size = Math.max(size, 0)
  const length = array == null ? 0 : array.length
  if (!length || size < 1) {
    return []
  }
  let index = 0
  let resIndex = 0
  const result = new Array(Math.ceil(length / size))

  while (index < length) {
    result[resIndex++] = slice(array, index, (index += size))
  }
  return result
}
}

首先Math.max() 方法可返回两个指定的数中带有较大的值的那个数,然后判断数组==null,如果数组等于null或者长度小于1返回空数组

  let index = 0
  let resIndex = 0
  const result = new Array(Math.ceil(length / size))

Math.ceil() 对一个数进行上舍入;Math.ceil(1.4)=2

  let index = 0
  let resIndex = 0
  const result = new Array(Math.ceil(length / size))

接下来就是循环判断最后把result返回
i++和++i的区别

var i = 1;
var a = i++; //a = 1; 此时i为2,但赋给a的是1
var b = ++i; //b = 3
 while (index < length) {
    result[resIndex++] = slice(array, index, (index += size))
  }
  return result
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,461评论 0 4
  • 总结了一些开发中常用的函数: usleep() //函数延迟代码执行若干微秒。 unpack() //函数从二进制...
    ADL2022阅读 3,311评论 0 3
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 9,718评论 0 6
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 5,205评论 0 5
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,743评论 0 38