将数组分割为几个等长度的子数组(使用slice)
先了解一下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);
以上就是想要的结果。
注:删除数组最后几个元素返回删除的数组 例如: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()
- 定义和用法
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 - 语法
arrayObject.concat(arrayX,arrayX,……,arrayX) - 例子:
1 var arr1 = [1,2,3]; 2 var arr2 = [4,5,6]; 3 var arr = []; 4 arr.concat(arr1, arr2); //输出[1, 2, 3, 4, 5, 6]