gpt4 book ai didi

javascript - 为什么这个二维数组在不应该的情况下推送值?

转载 作者:行者123 更新时间:2023-11-28 19:07:03 25 4
gpt4 key购买 nike

已编辑:感谢您指出我在内部循环中重置 tempRndNumber 时被忽视的错误。不过,我仍然看到“,”字符出现在数组中。

我想创建一个二维数组,仅当随机数满足特定条件(rnd >= 7)时才会填充该数组。但下面的代码使用“,”和满足条件的数字的组合来填充二维数组。

var tempAllRndNumbers = [];
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
var tempRndNumber = [];
var rndNumber = Math.floor(Math.random() * 10);
if (rndNumber >= 7) {
tempRndNumber.push(rndNumber);
}
}
tempAllRndNumbers.push(tempRndNumber);
}

tempAllRndNumbers 应该只填充 7 及以上的数字,对吗?但相反,我得到了一个充满“,”和数字 7 及以上的 2D 数组。

最佳答案

由于您在 j 循环的每次迭代中将 tempRndNumber 重置为空数组,因此如果最后一次迭代 >= 7,它只会包含一个数字。最内层循环之外的初始化:

var tempAllRndNumbers = [];
for (var i = 0; i < 10; i++) {
var tempRndNumber = [];
for (var j = 0; j < 10; {
var rndNumber = Math.floor(Math.random() * 10);
if (rndNumber >= 7) {
tempRndNumber.push(rndNumber);
}
}
tempAllRndNumbers.push(tempRndNumber);
}

关于javascript - 为什么这个二维数组在不应该的情况下推送值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463843/

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