关闭

js把一个大数组按指定大小分割拆分成多个小的子数组

来源:网络 文章列表 2019-02-24 8
本文通过for循环来slice拆分js数组,实现把一个大数组拆分成若干个小数组的功能。

假如我们有一个数组myarr,我们想把myarr按我们指定的数组大小把数组分割拆分为多个小数组,此时我们可以用js的数组函数slice将数组进行分割。具体方法如下。

slice(数组)

用法:array.slice(start,end)

解释:该方法是对数组进行部分截取,并返回一个数组副本;参数start是截取的开始数组索引,end参数等于你要取的最后一个字符的位置值加上1(可选)

//如果不传入参数二,那么将从参数一的索引位置开始截取,一直到数组尾
var a=[1,2,3,4,5,6];
var b=a.slice(0,3);    //[1,2,3]
var c=a.slice(3);       //[4,5,6]

//如果两个参数中的任何一个是负数,array.length会和它们相加,试图让它们成为非负数,举例说明:
//当只传入一个参数,且是负数时,length会与参数相加,然后再截取
var a=[1,2,3,4,5,6];
var b=a.slice(-1);    //[6]

//当只传入一个参数,是负数时,并且参数的绝对值大于数组length时,会截取整个数组
var a=[1,2,3,4,5,6];
var b=a.slice(-6);    //[1,2,3,4,5,6]
var c=a.slice(-8);    //[1,2,3,4,5,6]

//当传入两个参数一正一负时,length也会先于负数相加后,再截取
var a=[1,2,3,4,5,6];
var b=a.slice(2,-3);    //[3]

//当传入一个参数,大于length时,将返回一个空数组
var a=[1,2,3,4,5,6];
var b=a.slice(6);  //[]

了解完slice函数后,我们可以写一个循环拆分数组的函数,这个算法很简单

function sliceArray (arr, size) {
  var arr2 = [];
  for(var i=0; i<arr.length; i=i+size){
    arr2.push(arr.slice(i,i+size));
  }
  return arr2;
}

现在假如我们有一个数组 var myarr= [1,2,3,4,5,6] 

我们sliceArray(myarr, 2)

var myarr = [1,2,3,4,5,6]
let newarr = sliceArray(myarr, 2)
console.log(newarr)

得到运行结果:

 

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论