我有一个大阵列,例如aa=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
我有另一个数组,它根据需要分块的大数组来保存索引值。例如cc=[10,16]
我希望将数组 aa 分块为新数组
dd [] = [从0到cc [0]索引]
ee [] = [从cc [0]索引到cc [下一个值]索引]
示例
dd[] = [1,2,3,4,5,6,7,8,9,10]
ee[] = [11,12,13,14,15,16]
依此类推,直到cc[]
有索引
如果有人能帮助我,我无法弄清楚逻辑。
答案 0 :(得分:6)
您可以使用Array#map
和Array#slice
作为部分。
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
indices = [10, 16],
result = indices.map(function (a, i, aa) {
return array.slice(aa[i - 1] || 0, a);
});
console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:2)
你可以使用新的简单array.slice:
var array=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
var i,j,temparray,chunk = 10;
for (i=0,j=array.length; i<j; i+=chunk) {
temparray = array.slice(i,i+chunk);
console.info(temparray);
}
&#13;
答案 2 :(得分:1)
如果您不想使用内置方法,可以执行此类操作。
function createChunks(aa, cc) {
var temp = [], chunks = [];
for(var i=0, j=0, k=0; i<aa.length; i++) {
if(aa[i] == cc[j]) {
temp[k] = aa[i];
chunks.push(temp);
temp = []; k=0; j++;
}
else
temp[k++] = aa[i];
}
return chunks;
}
var aa=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16], cc=[10, 16];
var chunks = createChunks(aa, cc);
console.log(JSON.stringify(chunks));