通过几个用户的输入进行搜索,并揭示其中最常见的单词

Search through the input of several users and reveals the most commons word among them

本文关键字:单词 常见 搜索 几个 输入 用户      更新时间:2023-09-26

你好(全新的Javascript),我有一个简单的程序,显示一个提示框,要求几个不同的访问用户输入。

ex: <script type="text/javascript> var spectrum = prompt:", ""); </script>

看到. .很简单的代码,对吧lol (im new)

我想写一段代码,可以搜索用户的输入,显示最常见的单词。

有没有程序可以让我选择最常见的单词和document.write it?

帮忙吗?

如果这个问题有多个答案也没关系,因为我现在被难住了,我想听听大家对这个问题的建议。

使用纯Javascript,假设你在网页上提示3次。每个提示符存储到一个数组中。

var prompts = [];
(function(){
    for (var i=0; i<3; i++) {
        prompts.push(prompt("What is your favorite color?"))
    }
    //...
}());

那么您将需要一个方法来遍历每个响应并确定所使用的"匹配"单词。

function collateWords () {
    // join all the colors
    var sWords = prompts.join(" ")
        .toLowerCase().trim().replace(/[,;.]/g,'')
        .split(/['s'/]+/g).sort();
    var iWordsCount = sWords.length; // count w/ duplicates
    var counts = {}; // object for math
    for (var i=0; i<iWordsCount; i++) {
        var sWord = sWords[i];
        counts[sWord] = counts[sWord] || 0;
        counts[sWord]++;
    }
    var arr = []; // an array of objects to return
    for (sWord in counts) {
        arr.push({
            text: sWord,
            frequency: counts[sWord]
        });
    }
    // [sort array by descending frequency|http://stackoverflow.com/a/8837505]
    return arr.sort(function(a,b){
        return (a.frequency > b.frequency) ?
            -1 : ((a.frequency < b.frequency) ? 1 : 0);
    });
};

调用新方法并渲染到页面。

//...
var collected = collateWords();
var iWordsCount = collected.length; // count w/o duplicates
for (var i=0; i<iWordsCount; i++) {
    var word = collected[i];
    document.write(word.frequency + ", " + word.text);
}
//...

完整示例http://jsfiddle.net/jdgiotta/n26j5xf0/