3 回答
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
問題是您的切片總是從相同的索引 (0) 開始。
使用在i獲取塊時(shí)增加的變量(如 ):
let example = [3,2,3];
let auxarrayindex = [1,2,3,4,5,6,7,8];
let finalauxarray = [];
let i = 0;
for (let auxexample = 0; auxexample < example.length; auxexample++) {
finalauxarray.push(auxarrayindex.slice(i, i+=example[auxexample]));
}
console.log(finalauxarray);
你也可以使用map你的循環(huán):
let example = [3,2,3];
let auxarrayindex = [1,2,3,4,5,6,7,8];
let i = 0;
let finalauxarray = example.map(size => auxarrayindex.slice(i, i+=size));
console.log(finalauxarray);
TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
問題是因?yàn)榍衅瑓?shù)錯(cuò)誤您可以在此鏈接上了解有關(guān)切片如何工作的更多信息
https://www.w3schools.com/jsref/jsref_slice_array.asp
它將開始位置作為第一個(gè)參數(shù),將不包含在結(jié)果中的結(jié)束位置作為最后一個(gè)參數(shù)
您也可以為此使用 splice https://www.w3schools.com/jsref/jsref_splice.asp
希望有幫助
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
工作示例使用splice而不是slice我認(rèn)為它為這個(gè)特定用例提供了一個(gè)稍微干凈的 API:
let example = [3, 3];
let auxArrayIndex = [1, 2, 3, 4, 5, 6];
let example2 = [3, 2, 3];
let auxArrayIndex2 = [1, 2, 3, 4, 5, 6, 7, 8];
function getChunks(chunkSizes, array) {
let result = [];
for (let chunkSize of chunkSizes) {
result.push(array.splice(0, chunkSize));
}
return result;
}
let chunks = getChunks(example, auxArrayIndex);
let chunks2 = getChunks(example2, auxArrayIndex2);
console.log(chunks); // logs "[1,2,3], [4,5,6]"
console.log(chunks2); // logs "[1,2,3], [4,5], [6,7,8]"
添加回答
舉報(bào)
