博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FreeCodeCamp:Chunky Monkey
阅读量:6952 次
发布时间:2019-06-27

本文共 1565 字,大约阅读时间需要 5 分钟。

要求:

猴子吃香蕉可是掰成好几段来吃哦!

把一个数组arr按照指定的数组大小size分割成若干个数组块。

例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];

chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];

结果:

chunk(["a", "b", "c", "d"], 2) 应该返回 [["a", "b"], ["c", "d"]].

chunk([0, 1, 2, 3, 4, 5], 3) 应该返回 [[0, 1, 2], [3, 4, 5]].
chunk([0, 1, 2, 3, 4, 5], 2) 应该返回 [[0, 1], [2, 3], [4, 5]].
chunk([0, 1, 2, 3, 4, 5], 4) 应该返回 [[0, 1, 2, 3], [4, 5]].
chunk([0, 1, 2, 3, 4, 5, 6], 3) 应该返回 [[0, 1, 2], [3, 4, 5], [6]].
chunk([0, 1, 2, 3, 4, 5, 6, 7, 8], 4) 应该返回 [[0, 1, 2, 3], [4, 5, 6, 7], [8]].

代码:

方法1:

1 function chunk(arr, size) { 2   // Break it up 3   var temp = []; 4   var result = []; 5  6   for (var a = 0; a < arr.length; a++) { 7     if (a % size !== size - 1) 8       temp.push(arr[a]); 9     else {10       temp.push(arr[a]);11       result.push(temp);12       temp = [];13     }14   }15 16   if (temp.length !== 0)17     result.push(temp);18   return result;19 }

方法二:

1 function chunk(arr, size) { 2   // Break it up 3   // It's already broken :( 4   arr = arr.slice(); 5   var arr2 = []; 6   for(var i = 0, len = arr.length; i < len; i+=size) { 7     arr2.push(arr.slice(0, size)); 8     arr = arr.slice(size); 9   }10   return arr2;11 }

方法三:

1 function chunk(arr, size) { 2   // Break it up. 3   var newArr = []; 4   var i = 0; 5  6   while (i < arr.length) { 7     newArr.push(arr.slice(i, i+size)); 8     i += size; 9   }10   return newArr;11 }12 chunk(["a", "b", "c", "d"], 2);

方法四:

1 function chunk(arr, size) { 2   // Break it up 3   var newarr=[]; 4    5   for (var i=0;i

 

转载于:https://www.cnblogs.com/ttmj865/p/6052558.html

你可能感兴趣的文章
物件捆绑 背包问题 动态规划 求解
查看>>
finish
查看>>
查看系统信息msinfo32工具的使用
查看>>
iso系统镜像刻录到光盘和U盘
查看>>
tcp四次挥手
查看>>
windows服务初识
查看>>
jqgrid 点击列头的超链接或按钮时,不触发列排序事件
查看>>
自定义Collection类
查看>>
第十章
查看>>
JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器
查看>>
开源软件
查看>>
我对数据库的认识
查看>>
silverlight 学习笔记 (八):Prism中MEF的初步认识
查看>>
环境配置就是安装软件,修改软件的配置文件,安装软件就是文件的复制,与新增--linux下一切皆文件...
查看>>
11.27号
查看>>
c++ STL模板(一)
查看>>
JAVA面向对象概述
查看>>
mysql触发器
查看>>
UVA 10441 Catenyms 欧拉道路
查看>>
wpf 进度条 下拉
查看>>