元音计数器在Pure js中不起作用
Vowel counter not working in Pure js
我用纯js制作了一个元音计数器,但我无法使计数器正常工作。我似乎找不到我哪里出了问题,只需要一个小小的推动或例子来知道如何解决这个问题,如果可以的话。有人能提前帮我吗?谢谢。
这是我的HTML:
<h1> Vowel Counter </h1>
Please enter text for your vowel count:
<br>
<textarea id="text" rows="10" style="width: 100%;"></textarea>
<br>
<button onclick="countVowels();">Count Vowels</button>
<p id="result"></p>
这是我的Javascript:
function countVowels() {
var text = document.getElementById("text").value;
var arrayOfLetters = text.split("");
var arrayOfVowels = ("AEIOU");
// Set up our counters
var countA = 0;
var countE = 0;
var countI = 0;
var countO = 0;
var countU = 0;
// Output the results:
document.getElementById("result").innerHTML = "";
document.getElementById("result").innerHTML += "Total Letters: " + arrayOfLetters.length + "<br />";
document.getElementById("result").innerHTML += "A's: " + arrayOfVowels.length + countA + "<br />";
document.getElementById("result").innerHTML += "E's: " + arrayOfVowels.length +countE + "<br />";
document.getElementById("result").innerHTML += "I's: " + arrayOfVowels.length +countI + "<br />";
document.getElementById("result").innerHTML += "O's: " + arrayOfVowels.length +countO + "<br />";
document.getElementById("result").innerHTML += "U's: " + arrayOfVowels.length +countU + "<br />";
}
并且附上了我的jsfiddle:
http://jsfiddle.net/Matt1990/3Ckw2/43/
我建议使用正则表达式,而不是循环和许多if条件。除非您认为regex不是纯js,否则在上述解决方案中,代码的复杂性和可维护性都很差。
var countA = text.match(/[Aa]/g).length;
这将给你直接计数。要查找maxval,请使用基本的排序算法来查找max,然后为其分配一个css样式的类。这不是一个需要解决的技术问题。
你是如何计算元音的?现在,它显示每个元音计数为50,因为arrayOfVowels.length=5,countA(例如)仅为0。你没有把任何数字加在一起,但你在字符串0上加了5,结果是"50"。
您根本没有计算元音的机制,这并不是说您的"元音计数器"不起作用。你正确地设置了所有内容,但未能完成文本并系统地计算元音。您可以通过自动使字母小写或大写来改进此代码,这样您就不必使用或运算符来检查这两种情况。我本可以做得那么快,但我太懒了。。。
这个元音计数器将工作:
function countVowels() {
var text = document.getElementById("text").value;
var arrayOfLetters = text.split("");
var arrayOfVowels = ("AEIOU");
// Set up our counters
var countA = 0;
var countE = 0;
var countI = 0;
var countO = 0;
var countU = 0;
for(i=0; i < arrayOfLetters.length; i++) {
if (arrayOfLetters[i] == "A" || arrayOfLetters[i] == "a") {
countA ++;
}
if (arrayOfLetters[i] == "E" || arrayOfLetters[i] == "e") {
countE ++;
}
if (arrayOfLetters[i] == "I" || arrayOfLetters[i] == "i") {
countI ++;
}
if (arrayOfLetters[i] == "O" || arrayOfLetters[i] == "o") {
countO ++;
}
if (arrayOfLetters[i] == "U" || arrayOfLetters[i] == "u") {
countU ++;
}
}
// Output the results:
document.getElementById("result").innerHTML = "";
document.getElementById("result").innerHTML += "Total Letters: " + arrayOfLetters.length + "<br />";
document.getElementById("result").innerHTML += "A's: " + countA + "<br />";
document.getElementById("result").innerHTML += "E's: " + countE + "<br />";
document.getElementById("result").innerHTML += "I's: " + countI + "<br />";
document.getElementById("result").innerHTML += "O's: " + countO + "<br />";
document.getElementById("result").innerHTML += "U's: " + countU + "<br />";
}
相关文章:
- 预编译的JSX React,js不起作用
- Backbone.js 不起作用,而 Underscore、JSON 和 jQuery 可以
- HTML 显示/隐藏元素 JS 不起作用
- 为什么这个JS不起作用
- 主干上的无限滚动/分页.js不起作用
- AngularJs 和时刻.js不起作用
- 为什么图像选择器程序中的这个函数 js 不起作用
- EasyPieChart.js不起作用
- Int Array Django 通过上下文传递到 JS 不起作用
- tty.js不起作用
- 三元操作 JS 不起作用
- Rails 4 - 没有JavaScript错误,但JS不起作用
- 无法加载高图.js和高图.js(地图.js不起作用)
- 刻字.js不起作用
- 幻灯片.js不起作用
- 在我更改我的 .htaccess 后,我的 Css An Js 不起作用
- 可排序.js不起作用:列表项不可拖动
- 在视图源代码中阻碍 Js 不起作用
- 角度JS不起作用
- 推特引导程序 - JS不起作用