FreeCodeCamp:Chunky Monkey

要求:

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

把一个数组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<arr.length;i+=size){
 6     newarr.push(arr.slice(i,i+size));
 7   }
 8   return newarr;
 9 }
10
11 chunk(["a", "b", "c", "d"], 2);
时间: 2024-10-27 08:12:54

FreeCodeCamp:Chunky Monkey的相关文章

Chunky Monkey

猴子吃香蕉可是掰成好几段来吃哦! 把一个数组arr按照指定的数组大小size分割成若干个数组块. 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]]; 当你完成不了挑战的时候,记得开大招'Read-Search-Ask'. 这是一些对你有帮助的资源: Array.push() Array.slice() 作为一个小白,我的思路就是先看看到底能截几段,然后把截的每一段依次放入一个新的数组,最后返回这

FCC JS基础算法题(7):Chunky Monkey(分割数组)

题目描述: 把一个数组arr按照指定的数组大小size分割成若干个数组块. 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]]; 没什么好说的,自己做出的方法与网络上的差别不大,以下是代码: function chunk(arr, size) { // 请把你的代码写在这里 var newarr = []; for (var i = 0; i < arr.length; i+=size){ new

Freecodecamp 前端初级算法(个人向)

freecodecamp 初级算法地址戳这里 Reverse a String 翻转字符串 1 function reverseString(str) { 2 str=str.split("").reverse().join(""); 3 return str; 4 } 5 6 reverseString("hello") Factorialize a Number 计算一个整数的阶乘 1 function factorialize(num) {

FreeCodeCamp初级算法部分学习

Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. 你的结果必须得是一个字符串 当你完成不了挑战的时候,记得开大招'Read-Search-Ask'. 这是一些对你有帮助的资源: Global String Object String.split() Array.reverse() Array.join() 1 function reverseString(str) { 2 // 请把你的代码写在这里 3 va

js中字符和数组一些基本算法题

最近在刷 fcc的题,跟升级打怪一样,一关一关的过,还挺吸引我的.今天抽时间把 Basic Algorithm Scritping  这部分题做了,根据一些提示,还是比较简单的.有些题的处理方式 方法,我想值得借鉴.比如在项目中有时候要处理一个字符,如果想不到一些相关的方法,还挺费事的,所以,在此记录下来,如果以后遇到一些字符或者数组处理,可以来翻翻这篇文章,希望以此得到一些提示而不是去翻文档.   看到此博文的博友,有更好更简单的代码或者好的想法,请留言交流(我一直觉得只有学习别人的优秀代码才

MongoDB:The Definitive Guide CHAPTER 2 Getting Started

MongoDB is very powerful, but it is still easy to get started with. In this chapter we’ll introduce some of the basic concepts of MongoDB: • A document is the basic unit of data for MongoDB, roughly equivalent to a row in a relational database manage

fcc 基础算法题

fcc 基础算法题 fcc Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. function reverseString(str) { var arr =str.split(""); //string.split("");以""分割字符串 并返回新的数组 不改变原字符串 arr.reverse(); //反转数组 返回数组的引用 改变原数组 arr = ar

fcc初级算法题

  1.Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. 你的结果必须得是一个字符串 function reverseString(str) { str = str.split(''); str.reverse(); str = str.join(''); return str; } reverseString("hello"); 2.Factorialize a Number 计算一个整数的阶乘

Monkey测试

1             概述 Monkey测试是Android自动化测试的一种手段.Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. 当Monkey程序在模拟器或真实设备运行的时候,程序会产生一定数量或一定时间内的随机模拟用户操作的事件, 如点击,按键,手势等, 以及一些系统级别的事件.通常也称随机测试或者稳定性测试. 2             测试步骤 2.1   测试前提条件 1.将手机恢复出厂设置 2.恢复出厂设置后,进入设置--