将数组分割为几个等长度的子数组(使用slice)

时间:2022-09-27 11:25:32

先了解一下slice方法:

slice()

1.定义:slice()可从已有数组中截取返回指定的元素,形成一个新的数组;

语法:arrayObject.slice(start,end);

参数 描述
start    必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end  可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

2. 返回值 
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。 
3. 说明 
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

封装slice() : 将数组分割为几个等长度的子数组

/*
*array分割的原数组
*size 分割成等长子数组的长度
*/ function sliceArray(array,size){
var result = [];
for(var i=0;i<Math.ceil(array.length/size);i++){
var start = i * size;
var end = start + size;
result.push(array.slice(start, end));
}
return result;
}

下面我们测试一个例子

var arr = [1,1,2,3,45,67,88,67,7,9,0,4,6,77,8,99,54,24];

var array = sliceArray(arr,4);

console.log(array);

将数组分割为几个等长度的子数组(使用slice)

以上就是想要的结果。

注:删除数组最后几个元素返回删除的数组 例如:arr=[1,2,3,5,5,6,6,8,9,11] arr.slice(-5); result:delArr=[6,6,8,9,11];

想要得到删除后的数组arr.slice(0,arr.length-5);

将几个数组合并为一个数组concat()

  1. 定义和用法 
    concat() 方法用于连接两个或多个数组。 
    该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
  2. 语法 
    arrayObject.concat(arrayX,arrayX,……,arrayX)
  3. 例子:
     var arr1 = [1,2,3];
    var arr2 = [4,5,6];
    var arr = [];
    arr.concat(arr1, arr2); //输出[1, 2, 3, 4, 5, 6]