我正在做大学作业。我遇到了很多困难并陷入困境。我的同学没有帮助我,老师也没有回应。我希望我能在这里得到一些帮助/理解。我当前正在完成且今天到期的作业是:
创建一个包含文本区域和“分析”按钮的页面。结果区域将显示 x 个字符的单词的频率。例如,文本“一二三”包含2个3字符单词和1个5字符单词。对原始设计的改进是删除任何可能导致计数偏差的无关字符。
我现在才刚刚开始,所以我会在更新时在此处添加代码。我知道 HTML 部分不会有问题,JavaScript 部分才是我的问题。根据我得到的信息,我需要一个函数来计算单词和每个单词中的字符。但它需要排除空格和字符,例如:,.';/。我之前没有遇到过这段代码,所以任何关于如何构建 javascript 的输入都会有所帮助。而且他似乎要我列出有多少个具有相同字符的单词?我没看错吗?
到目前为止我的代码:
<!DOCTYPE html>
<html>
<body>
<textarea id="txtarea">
</textarea>
<input type="button" id="analyze" value="Analyze" onclick="myFunction()" />
<p id="demo"></p>
<p id="wcnt"></p>
<script>
function myFunction() {
var str = document.getElementById("txtarea").value;
var res = str.split(/[\s\/\.;,\-0-9]/);
var n = str.length;
document.getElementById("demo").innerHTML = "There are " + n + " characters in the text area.";
for (var i = 0; i < res.length; i++) {
s = document.getElementById("txtarea").value;
s = s.replace(/(^\s*)|(\s*$)/gi, "");
s = s.replace(/[ ]{2,}/gi, " ");
s = s.replace(/\n /, "\n");
document.getElementById("wcnt").innerHTML = "There are " + s.split(' ').length + " words in the text area.";
}
}
</script>
</body>
</html>
现在我需要弄清楚如何让它计算每个单词的字符数,然后输出有多少个单词有 x 个字符。比如5个单词有4个字符等等。有什么建议吗?
最佳答案
var textarea = document.getElementById("textarea"),
result = {}; // object Literal to hold "word":NumberOfOccurrences
function analyzeFrequency() {
// Match/extract words (accounting for apostrophes)
var words = textarea.value.match(/[\w']+/g); // Array of words
// Loop words Array
for(var i=0; i<words.length; i++) {
var word = words[i];
// Increment if exists OR assign value of 1
result[word] = ++result[word] || 1;
}
console.log( result );
}
analyzeFrequency(); // TODO: Do this on some button click
<textarea id="textarea">
I am working on my college-homework.
Homework I am having a lot of difficulty with it and getting stuck.
My class mates are not helping me and the instructor hasn't responded.
I am hoping I might get some help/understanding here.
</textarea>
请注意 Homework
和 homework
(小写)如何注册为两个不同的单词,我将让您来解决这个问题 - 如有必要并实现 analyzeFrequency()
在单击某个按钮时触发。
关于javascript - 创建文本区域和分析按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44465009/