FCC--Chunky Monkey(数组分组)和Slasher Flick(截断数组)

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

算法解析:1,利用两个指针p1,p2。p1指向数组开头位置,p2指向开头+size的位置

                  2,这个数组推入到新的数组

                  3,将两个指针移动size个单位

                  4,重复1,2,3步骤,直到指针p1和p2移动到结尾

利用slice函数完成指针指向和复制数组的功能,算法实现如下:

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

chunk(["a", "b", "c", "d"], 2);


----------------------------------------------------------------------------------------------------------------------------------------------------------

Slasher Flick(截断数组)

返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始。

function slasher(arr, howMany) {
  // it doesn't always pay to be first
  arr.splice(0,howMany);
  return arr;
}

slasher([1, 2, 3], 2);

slice函数可以复制数组中的某一段,并不改变原数组

splice函数删除指定的一段数组,改变原数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值