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函数删除指定的一段数组,改变原数组