gpt4 book ai didi

javascript - 如何使用 for 循环向 JS 变量添加值?

转载 作者:行者123 更新时间:2023-12-03 00:25:25 25 4
gpt4 key购买 nike

我编写了一段代码,可以生成 12 个字符的随机代码。我正在使用 Math.random 和 for 循环来执行此操作。在页面上您可以输入您想要的代码数量。

我想要做的是将生成的代码保存在一个数组中,但是我不能这样做,因为 for 循环和 Math.random 按数字创建代码并将它们放在一起。如何将整个 12 位代码添加到我的数组中(以便稍后使用)?

我尝试过 array.push 但没有成功。有效的方法是将数字输出到 HTML 中的 DOM 对象,如下所示:

for (i = 0; i < 12; i++) {
var mathRandom = Math.floor(Math.random() * 9);
var result = document.querySelector("#result");
result.innerHTML += mathRandom;
}

但这并没有将 12 位代码放入变量中。我也尝试过这个:

var codeNumber = "";
codeNumber += mathRandom;

但最终变量值只有 1 位数字。

<input type="number" id="numberOfCodes">
<button onclick="codeGen()">Generate</button>
<div id="result"></div>




<script>

var numberOfCodes = document.querySelector("#numberOfCodes");
var arr = [];

function codeGen() {
x = numberOfCodes.value;
for (a = 0; a < x; a++) {
generate();
console.log("Generated code");
}
}


function generate() {
for (i = 0; i < 12; i++) {
var mathRandom = Math.floor(Math.random() * 9);
var result = document.querySelector("#result");
result.innerHTML += mathRandom;

}
}

</script>
</div>
</body>
</html>

我希望将创建的代码(经过一些更改后)添加到数组中,以便我稍后可以使用页面上的代码。每个单独的 12 位代码都需要在数组中拥有自己的位置。

最佳答案

这应该有效:

var result = [], stringResult;

for (i = 0; i < 12; i++) {
var mathRandom = Math.floor(Math.random() * 9);
result.push(mathRandom);
}
stringResult = result.join(''); // concatenates all the elements
console.log(stringResult);

您的代码的问题在于 + 符号尝试确定操作数的类型并选择正确的运算、串联或加法。当向 innerHtml 添加内容时,它将数字视为字符串。这就是它起作用的原因。

关于javascript - 如何使用 for 循环向 JS 变量添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54113817/

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