【发布时间】:2016-10-26 18:37:12
【问题描述】:
我有一个功能,它收集输入的答案并检查收集的答案是否与解决方案相同。问题是随机提问的。问题和解决方案位于单独的 .txt 文件中。
我有一个包含一些单词的文件,如果列表中的最后一个单词被正确回答,即使其他问题的其他答案是正确的,程序也总是满足它的条件。
有什么建议吗?
var besedeNemske = ["glava", "voda", "drevo"];
var besedePrevod = ["der Kopf", "das Wasser", "der Baum"];
window.onload = function() {
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');
fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var textType = /text.*/;
if (file.type.match(textType)) {
var reader = new FileReader();
reader.onload = function(e) {
var lines = this.result.split('\n');
for (var line = 0; line < lines.length; line++) {
if (line % 2 != 0) {
besedeNemske.push(lines[line]);
} else {
besedePrevod.push(lines[line]);
}
}
}
reader.readAsText(file);
} else {
fileDisplayArea.innerText = "File not supported!"
}
});
}
var random = 0;
function nastaviRandom() {
random = Math.floor(Math.random() * 5);
}
function noviGlagol() {
nastaviRandom();
document.getElementById("vprasanje").innerHTML = besedePrevod[random];
}
function preveriOdgovor() {
var odgovorjeno = document.getElementById("mojOdgovor").value;
if (besedeNemske.indexOf(odgovorjeno) == random) {
document.getElementById("odgovor").innerHTML = "Pravilni odgovor";
} else {
document.getElementById("odgovor").innerHTML = "Napačen odgovor. Pravilni odgovor je " + (besedeNemske[random]) + "";
}
}
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<div id="page-wrapper">
<h1>Nemščina glagoli</h1>
<div>
Select a text file:
<input type="file" id="fileInput">
</div>
<pre id="fileDisplayArea"><pre>
<button onclick="noviGlagol()">Novi glagol</button>
<div id="vprasanje"></div>
<div id="odgovor"></div>
<input type="text" id="mojOdgovor">
<button onclick="preveriOdgovor()">Pošlji</button>
</div>
<script>
</script>
</body>
<html>
【问题讨论】:
-
仅供参考,您的循环可以替换为
index = besedeNemske.indexOf(odgovorjeno) -
random是否在任何地方初始化/赋值?如果是这样,在哪里/如何? -
请发布您的 HTML
-
您的循环无法区分输入不匹配任何内容和匹配数组的第一个元素之间的区别。在这两种情况下,它都是
index = 0。您需要为未找到使用不同的值。 -
我敢打赌,文件中有您看不到的字符,可能是行尾的空格。尝试使用
.push(lines[line].trim)
标签: javascript if-statement for-loop