zoukankan      html  css  js  c++  java
  • 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]] ; 

    提示

    Array.push()

    Array.slice()

    思路

    数组分割成块,看到这个就想到  slice() 方法。  slice() 可接收两个参数,返回项的起始位置、(可选)返回项的结束位置。准确的说,返回的数组是从第一个参数到第二个参数前一个位置的项,也就是说,返回的数组包含起始位置但不包含结束位置。 

    用  for() 循环迭代传进来的数组,在循环内部用把  slice() 切割的块推入新声明的空数组中,就能达到预期结果啦! 

    解法

    function chunk(arr, size) {
      // Break it up.
      var temp = [];  
      for(var i = 0; i < arr.length; i+=size){
        temp.push(arr.slice(i,i+size));
      }  
      return temp;
    }

    测试

    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]] .

  • 相关阅读:
    const 深悟理解
    深拷贝与浅拷贝深究
    结队开发-最大子数组
    软件工程个人作业02
    四则运算关于加括号的思路
    实践出真知-所谓"java没有指针",那叫做引用!
    写代码的好习惯—先构思
    团队合作
    阿超超的四则运算 想啊想啊
    Github+阿超运算
  • 原文地址:https://www.cnblogs.com/codepen2010/p/6813124.html
Copyright © 2011-2022 走看看