javascript - 返回对象而不是函数
问题描述
我试图用 JavaScript 构建一个数学测验,它是定时的,并给出 20 个随机生成的数学问题。但是,当按下开始并且计时器开始而不是输出问题时,我得到[object,Object]。所以我的问题是如何改变它,以便它返回随机生成的问题?
下面是我的 JS:
window.onload = function () {
var seconds = 00;
var tens = 00;
var appendTens = document.getElementById("tens");
var appendSeconds = document.getElementById("seconds");
var buttonStart = document.getElementById('button-start');
var Interval ;
buttonStart.onclick = function() {
function generateQuestions () {
let randNum1 = Math.floor(Math.random() * 100) + 1;
let randNum2 = Math.floor(Math.random() * 100) + 1;
var op = ["*", "+", "/", "-"][Math.floor(Math.random() * 4)];
return {number1: randNum1, operator: op, number2: randNum2};
}
var problemList = [];
while (problemList.length < 20) {
problemList.push(generateQuestions());
document.getElementById("questions").innerHTML = problemList[0];
}
clearInterval(Interval);
Interval = setInterval(startTimer, 10);
}
function startTimer () {
tens++;
if(tens < 9){
appendTens.innerHTML = "0" + tens;
}
if (tens > 9){
appendTens.innerHTML = tens;
}
if (tens > 99) {
console.log("seconds");
seconds++;
appendSeconds.innerHTML = "0" + seconds;
tens = 0;
appendTens.innerHTML = "0" + 0;
}
if (seconds > 9){
appendSeconds.innerHTML = seconds;
}
}
}
解决方案
这里我给你做了一个简单的例子
var questionsElement = document.querySelector("#questions");
function randInt(max) {
return Math.floor(Math.random() * max);
}
function randQuestions(len) {
var questions = [];
while(questions.length < len) {
questions.push({number1: randInt(100), operator: ["+","*","-","/"][randInt(4)], number2: randInt(100)});
}
return questions;
}
var problemList = randQuestions(20);
for(var i = 0;i < problemList.length; i++) {
questionsElement.innerHTML += `<li>${problemList[i].number1} ${problemList[i].operator} ${problemList[i].number2} = ?</li>`;
}
ul {
padding: 0;
margin: 0;
list-style-type: none;
}
li {
background-color: lightgreen;
color: white;
padding: 10px;
margin-top: 5px;
font: bold 20px monospace;
}
<ul id="questions"></ul>
推荐阅读
- google-cloud-platform - 用于获取我组织中所有 GCP 项目的 IP 地址的 Terraform 脚本
- docker - 如何让 Docker 停止使用缓存的图像或图层
- typescript - 如何制作递归元组来描述逻辑运算符?
- javascript - 如何在请求正文中发送带有日期对象的 axios 发布请求?
- regex - 正则表达式排除字符串并删除行
- php - 如何使用选择选项将 id 提取到数据库
- bash - Bash 脚本通过 term 和 MacOS launchd 进行不同的评估
- c# - 如何使用电子邮件 .net-core 发送生成的 pdf 附件
- android - 更新工具栏中的 androidx SearchView 文本颜色
- visual-studio-code - 为什么 docker 扩展在 Visual Studio 代码中不起作用