gpt4 book ai didi

javascript - 使用循环(JavaScript)从一维数组创建二维数组

转载 作者:行者123 更新时间:2023-11-30 07:56:59 25 4
gpt4 key购买 nike

我有一个数组:[1, 2, 3, 4, 5, 6, 7, 8, 9]

我想用三个一维数组创建一个二维数组。函数变量中的每个 NUM 是每个一维数组的长度。结果应该是 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

但我得到的只是 ,,3,,,6,,,9。我做错了什么?

function infiniteLoop(arr, num) {
var answer = [];
var count = 0;
for (let i = 0; i < num.length; i++) {
for (let j = 0; j < num[i]; j++, count++) {
answer[i] = [];
answer[i][j] = arr[count];
}

}
return answer;
}

document.write(infiniteLoop([1, 2, 3, 4, 5, 6, 7, 8, 9], [3, 3, 3]));

最佳答案

JavaScript 本身没有多维数组,它有的是数组的数组。

当您尝试使用 answer[i][j] 时,其中的 answer[i] 部分是 undefined 因为您还没有暂时不要将其设置为任何值 - 此时 answer 只是一个空数组。你需要设置answer[i] = [];answer的第一个元素设置为空数组,然后就可以了使用 answer[i][j]

这将像这样适合您现有的循环:

for (let i = 0; i < num.length; i++) {
answer[i] = []; // <--- add this
for (let j = 0; j < num[i]; j++, count++) {
answer[i][j] = arr[count];
}
}

关于javascript - 使用循环(JavaScript)从一维数组创建二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com