[JS]Array.prototype.slice()和Array.prototype.splice()

arr.slice(begin,end)

slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改

  • 如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取slice(-2,-1)表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
  • 如果 end 被省略,则slice 会一直提取到原数组末尾。
  • 如果 end 大于数组长度,slice 也会一直提取到原数组末尾。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/slice


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

题目来源:freecodecamp

全部代码:

 1 function chunk(arr, size) {
 2   // 请把你的代码写在这里
 3   var newArr=[];
 4   for(var i=0;i<Math.ceil(arr.length/size);++i)
 5     {
 6       newArr.push(arr.slice(size*i,size+size*i));
 7     }
 8   return newArr;
 9 }
10 
11 chunk(["a", "b", "c", "d"], 2);

!特别注意:slice里的end不是长度是下标。


附:

数字取上下限问题:

1.丢弃小数部分,保留整数部分

parseInt(5/2)

2.向上取整,有小数就整数部分加1

 Math.ceil(5/2)

3,四舍五入.

Math.round(5/2)

4,向下取整

 Math.floor(5/2)

https://www.jb51.net/article/50005.htm


Array.prototype.splice(start,deletecount,item,,,,)

splice()方法通过删除现有元素和/或添加新元素来更改一个数组的内容

  • start为开始位置
  • deletcount为要删除的数目
  • item可写多个插入到刚刚删除的位置

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

Slasher Flick


截断数组

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

1 function slasher(arr, howMany) {
2   // 请把你的代码写在这里
3   arr.splice(0,howMany);
4   return arr;
5 }
6 
7 slasher([1, 2, 3], 2);

@jm_epiphany

原创供学习参考使用,转载请注明出处http://www.cnblogs.com/cuphoria/ @jm_epiphany
原文地址:https://www.cnblogs.com/cuphoria/p/9592649.html