将数组分割为几个等长度的子数组(使用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()

  1. 定义和用法 
    concat() 方法用于连接两个或多个数组。 
    该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
  2. 语法 
    arrayObject.concat(arrayX,arrayX,……,arrayX)
  3. 例子:
    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]

     

 

转载于:https://www.cnblogs.com/shixy1617/p/7562280.html

在JavaScript中,我们可以使用不同的方法来将一个数组修改成多层嵌套多个数组。以下是几种实现方法: 1.使用循环:可以使用while或for循环来遍历原数组并将其拆分成需要的多个数组。例如,以下代码演示了如何将一个数组分成多个数组: let arr = [1, 2, 3, 4, 5, 6]; let batchSize = 2; //定义每个数组长度 let result = []; while (arr.length) { result.push(arr.splice(0, batchSize)); } 这将创建一个长度为3的数组。每个数组都包含长度为2的数组。 2.使用递归:使用递归函数可以将数组分割成多个数组。以下是递归函数的示例: function splitArray(arr, batchSize) { if (arr.length <= batchSize) { return [arr]; } const chunk = arr.slice(0, batchSize); return [chunk, ...splitArray(arr.slice(batchSize), batchSize)]; } 可以通过以下方式使用该函数: let arr = [1, 2, 3, 4, 5, 6]; let result = splitArray(arr, 2); 这将创建一个长度为3的数组,每个数组都包含长度为2的数组。 3.使用reduce:使用reduce函数可以将数组转换为多层嵌套的数组。以下代码演示了如何使用reduce函数: let arr = [1, 2, 3, 4, 5, 6]; let batchSize = 2; let result = arr.reduce(function (acc, cur, index) { if (index % batchSize === 0) { acc.push([]); } acc[acc.length - 1].push(cur); return acc; }, []); 这将创建一个长度为3的数组,每个数组都包含长度为2的数组。 4.使用lodash库:lodash库中的函数chunk可以将数组分解成数组。以下代码演示了如何使用该函数: let arr = [1, 2, 3, 4, 5, 6]; let batchSize = 2; let result = _.chunk(arr, batchSize); 这将创建一个长度为3的数组,每个数组都包含长度为2的数组。 无论你选择哪种方法,你都可以使用这些技巧来将一个数组转换成多层嵌套的数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值