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

标签 javascript arrays function for-loop variables

我编写了一段代码,可以生成 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/

相关文章:

javascript - ui5 将项目绑定(bind)到 TableRows 而不是 TableColumns

javascript - 应用程序/app.component.ts(192,17) : error TS2339: Property 'init' does not exist on type 'Intercom'

javascript - 当元素相等时,Array.sort() 会产生意想不到的结果吗?

javascript - 如何比较两个对象数组并获取共同对象

javascript - .prepend 不是函数

delphi - case..of 与函数

javascript - 从数组中提取和添加数字

javascript - d3 更新新元素转换

c++ - 指针符号和数组

javascript - 我不明白这个功能。 [Codecademy 联系人列表练习]