Lodash笔记 chunk

2019-11-11 admin

Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库。Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单

1.chunk方法
// nativeMax = Math.max
// nativeCeil = Math.ceil
// toInteger转化为整数的方法
// baseSlice切割数组的方法;类似slice
function chunk(array, size, guard) {
  if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {
    size = 1;
  } else {
  //转化size为正整数或者0
    size = nativeMax(toInteger(size), 0);
  }
  var length = array == null ? 0 : array.length;
  if (!length || size < 1) {
    return [];
  }
  var index = 0,
      resIndex = 0,
  //确定返回数组的长度 向上取整
      result = Array(nativeCeil(length / size));
  //核心部分 很精简的循环赋值数组指定位置为原数组切割的部分
  //在实现slice中也是类似循环赋值方法
  while (index < length) {
    result[resIndex++] = baseSlice(array, index, (index += size));
  }
  return result;
}
chunk([1,2,3,4,5],2)==>[[1,2],[3,4],[5]]

[转载]原文链接:https://segmentfault.com/a/1190000020960917

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-78944.html

文章标题:Lodash笔记 chunk

相关文章
JavaScript学习笔记之DOM基础 2.4
DOM的发展,与WEB标准化的大趋势相关甚密。只有基于正确的语义逻辑,DOM才能正确地发挥其功用。如今,正确的语义结构、表现与内容分离等要求,都已经成为网页设计中的基本要求。因此,在网页前端开发中,DOM的存在,无疑是为表现层、行为层甚至内...
2017-03-29
AngularJS学习笔记之ng-options指令
1.基本下拉效果(lable for value in array) 其中select标签中的ng-model属性必须有,其值为选中的对象或属性值。 &lt;div ng-controller=&quot;ngselect&quot;&gt...
2017-03-24
AngularJS基础学习笔记之表达式
AngularJS通过表达式将数据绑定到HTML。 AngularJS表达式 AngularJS表达式写在双大括号中:{{ 表达式语句 }}。 AngularJS表达式绑定数据到HTML的方式与ng-bind指令的方式相同。 Angular...
2017-03-23
vue2笔记 — vue-router路由懒加载的实现
在Web应用程序中,系统的瓶颈常在于系统的响应速度。如果系统响应速度过慢,用户就会出现埋怨情绪,系统的价值也因此会大打折扣。因此,提高系统响应速度,是非常重要的。 懒加载(Load On Demand)是一种独特而又强大的数据获取方法,它能...
2017-03-14
Nodejs学习笔记之入门篇
分享第一篇,关于 NodeJS —— Javascript 的常用知识以及如何从 Javascript 开发者过渡到 NodeJS 开发者(不会介绍具体的框架)。在读本文前,希望你对 javascript 有一些初步的认识。 Javascr...
2017-03-22
JavaScript DOM事件(笔记)
第1章 事件流 1-1.事件冒泡:事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收; 然后逐级向上传播至最不具体的那个节点(文档); 1-2.事件捕获:不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件; 第2章 事...
2017-03-22
Bootstrap选项卡学习笔记分享
本文实例为大家分享了Bootstrap选项卡的学习笔记,供大家参考,具体内容如下 tab选项卡 &lt;body&gt; &lt;div class=&quot;container&quot;&gt; &lt;!-- tab选...
2017-03-14
Easyui笔记2:实现datagrid多行删除的示例代码
如何实现datagrid多行删除? 最近在前端界面开发中,使用了datagrid组件。需要完成一个多行勾选并删除的功能。 查看easyui api,其中有一个deleteRow方法,传入要删除行的索引,即可删除该行。 错误做法 于是准备用d...
2017-03-09
angular2学习笔记之bootstrap中的component使用教程
** 前序:** 现在angular2已经除了集成的angular-cli,建议大家可以基于这个来快速开发ng2的项目,不用自己再搭建环境; 相关内容请前往:https://angular.cn/docs/ts/latest/cli-qui...
2017-03-13
javascript设计模式之策略模式学习笔记
1. 理解javascript中的策略模式 策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。 使用策略模式的优点如下: 优点: 1. 策略模式利用组合,委托等技术和思想,有效的避免很多if条件语句。 2. ...
2017-03-17
回到顶部