数组分块 - 可能在一个数组中?

Ben*_*ell 0 javascript arrays chunking

让我说我有这个

    var array =[23,345,6,765,54423,45654,7657,43,43,5,765,3456,768,897,545,645,87,4556,432,543,534];
var chunkEachBy = [3,2,1,5,6,4];

var chunked = [];


for(var i =0, l = chunkEachBy.length; i < l; i++)
{
     chunked.push(array.splice(0, chunkEachBy[i]));   
}
Run Code Online (Sandbox Code Playgroud)

输出:

[Array[3], Array[2], Array[1], Array[5], Array[6], Array[4]]
Run Code Online (Sandbox Code Playgroud)

它只是简单地array进入长度chunkEachBy,然后为每个值组合每个值chunkEachBy.

我的问题是,在这种情况下,不是将结果推送到一个单独的数组中,而是chunked将这一切都完成到原始数组并产生相同的结果吗?

JSFiddle - https://jsfiddle.net/b7twnurm/1/

Sig*_*uza 10

使用splicei索引的double :

array.splice(i, 0, array.splice(i, chunkEachBy[i]));
Run Code Online (Sandbox Code Playgroud)

说明:

i指向array我们尚未处理的第一个元素,或者在我们添加的最后一个元素之后.
splice采取两个参数(array.splice(i, chunkEachBy[i]))删除一个数的元素array从位置i,和一个以三个参数插入他们全部回到他们只是从所采取的立场,但现在作为一个数组(因为这是array.splice返回).

另请参阅array.splice文档以获取第三个参数.

更新小提琴:https://jsfiddle.net/b7twnurm/2/