经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
lodash函数库 -- chunk
来源:cnblogs  作者:破壳而出的蝌蚪  时间:2021/1/11 9:35:04  对本文有异议

loadsh函数库中的 chunk 函数采用 typescript 语法重写.

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

  1. /**
  2. *
  3. * 将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。
  4. * 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
  5. *
  6. * @param array 需要处理的数组
  7. * @param size 每个数组区块的长度
  8. * @returns {Array<Array<T>>}
  9. * @example
  10. *
  11. * chunk(['a', 'b', 'c'], 2)
  12. * // => [['a', 'b'], ['c']]
  13. *
  14. * chunk(['a', 'b', 'c','d'], 2)
  15. * // => [['a', 'b'], ['c','d']]
  16. */
  17. const chunk = <T>(array: Array<T>, size = 1): Array<Array<T>> => {
  18. // 边界检测
  19. // 需要考虑块长度小于1和空数组
  20. const length = array.length;
  21. if (!length || size < 1) return [];
  22. let index = 0; // 处理数组起始位
  23. let resindex = 0; // 新数组起始位
  24. const result = new Array<Array<T>>(Math.ceil(length / size));
  25. while (index < length) {
  26. result[resindex++] = array.slice(index, (index += size)); // size 为步长值
  27. }
  28. return result;
  29. };
  30. export default chunk;
  1. import chunk from "../src/chunk";
  2. const arr = [1, 2, 3, 4, 5, 6];
  3. const n = chunk(arr, 3);
  4. console.log(n); // [ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
  5. const arrs = ["a", "b", "c"];
  6. const n1 = chunk(arrs, 2);
  7. console.log(n1); // [ [ 'a', 'b' ], [ 'c' ] ]
  8. const arre = [] as Array<string>;
  9. const n2 = chunk(arre, 2);
  10. console.log(n2); // []

个人作品

ip定位查询浏览器插件
老虎优惠券浏览器插件

原文链接:http://www.cnblogs.com/whnba/p/14243698.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号