首页 > 其他分享 >js实现 chunk 函数分组数组

js实现 chunk 函数分组数组

时间:2022-08-22 16:12:31浏览次数:92  
标签:chunk len js length let 分组 array size

// 自己实现
function chunk(list, size) { let len = list.length; if (size < 1 || !len) { return []; } if (size > len) { return [list]; } // 最终返回数组 let res = []; // 向下取整 let integer = Math.floor(len / size); // 取余 let rest = len % size; for (let i = 1; i <= integer; i++) { res.push(list.splice(0, size)); } if (rest) { res.push(list.splice(0, rest)); } return res; } // console.log(chunk([1, 2, 3, 4, 5], 0)); console.log(chunk([1, 2, 3, 4, 5], -1)); console.log(chunk([1, 2, 3, 4, 5], 2)); console.log(chunk([1, 2, 3, 4, 5], 3)); console.log(chunk([1, 2, 3, 4, 5], 4)); console.log(chunk([1, 2, 3, 4, 5], 5)); console.log(chunk([1, 2, 3, 4, 5], 6)); // [] // [] // [ [ 1, 2 ], [ 3, 4 ], [ 5 ] ] // [ [ 1, 2, 3 ], [ 4, 5 ] ] // [ [ 1, 2, 3, 4 ], [ 5 ] ] // [ [ 1, 2, 3, 4, 5 ] ] // [ [ 1, 2, 3, 4, 5 ] ]

网上找到的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
}

 

标签:chunk,len,js,length,let,分组,array,size
From: https://www.cnblogs.com/beileixinqing/p/16613149.html

相关文章

  • js定位元素
    定位到被测的标签       全局查找div标签下的元素document.querySelectorAll('li') 鼠标移动找到联动到的标签位置  document.querySelectorAl......
  • js去除字符串空格(空白符)
    使用js去除字符串内所带有空格,有以下两种种方法:(1)replace正则匹配方法去除字符串内所有的空格:str=str.replace(/\s*/g,"");去除字符串内两头的空格:str=......
  • js实现深度比较
    functionisEqual(x,y){//如果全等则直接返回trueif(x===y){returntrue;}elseif(typeofx==="object"&&x!==......
  • 2022-08-22 原生js输出span标签中的文本内容
    使用innerText。例:<spanclass="value">九月廿八</span>  varcopyBtn=document.getElementsByClassName('value')[2];  varcwjBtn......
  • JSON在线解析及格式化工具
    JSON在线解析及格式化验证-JSON.cn 第一步:将生成的结果转化为jsonSystem.out.println(JSONObject.toJSONString(result));  第二步:将结果使用在线工具转换,便于......
  • 最近的 Evil.js 让我明白了很多...
    最近的Evil.js让我明白了很多…前几天突然不少群里看到有人转发Evil.js的截图:什么?黑心996公司要让你提桶跑路了?想在离开前给你们的项目留点小礼物?偷偷地把本项......
  • 【未解决】 python type(json.load(f))为啥会报错?
    疑惑 pythontype(json.load(f))为啥会报错?而重新赋值res后,又不会报错?  赋值res前 ......
  • 使用@arcgis/core本地部署ArcGIS API for JS
    一、简介@arcgis/core官方文档ArcGISAPIforJavaScript是WebGIS开发中非常重要的前端JS库,是浏览器端调用ArcGIS功能所使用的库。如ArcmapPro中所使用的创建要素,编辑......
  • js拆分选择题各选项【javascript将选择题选项通过正则表达式拆分出来】
    最近做题库项目需要添加试题,尤其是选择题逐个添加各选项很繁琐。通过以下正则表达式可以将选择题题目、选项迅速分离出来,并自动添加到选项文本框$("#split").clic......
  • nodejs 读取博客园自己博客列表 生成全部标题列表
    需求自己的博文有823篇了,但是不能在一页里面显示,本来想通过MetaWeblog读取,后来发现失败了。没办法,自己写个脚本读取吧。之前MetaWeblog读取失败的文章:https://www.c......