如何使用Javascript计算文本区域中所有单词的出现次数?

irr*_*lar -2 javascript jquery

如果我有一个textarea并且用户将一个段落粘贴到textarea中,那么可以在客户端使用JavaScript在输入上运行统计吗?我正在考虑使用关联数组或哈希映射,以便使用数组[word] - > #of occurrence,并逐字迭代,但我不知道如何使用客户端JavaScript执行此操作.

我试着搜索JavaScript字数,但我只得到计算单词总数的结果,这不是我想要的.我正在寻找的是更多地保留每个特定单词的计数.这可以在Javascript或Jquery中完成吗?如果是这样,我该怎么做呢?

lor*_*lad 5

这是给你的方法

// first get an array of words
var words = text.split(' ');

// use Array.prototype.reduce (for example) to
// create statistics
var statistics = words.reduce(function (stat, word) {
    if (!stat[word]) stat[word] = 0;
    stat[word]++;
    return stat;
}, {});
Run Code Online (Sandbox Code Playgroud)

更新:处理标点符号和大/小写的小例子:http://jsfiddle.net/1pnLzv8h/1/

  • 是的,你还应该处理大小写,数字等.但是我想我把它作为OP的练习 (2认同)