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

时间:2014-12-15 17:04:42

标签: javascript jquery

如果我有一个textarea并且用户将一个段落粘贴到textarea中,是否可以在客户端使用JavaScript在输入上运行统计信息?我正在考虑使用关联数组或哈希映射,因此数组[word] - >出现次数,并逐字逐句迭代,但我不知道如何使用客户端JavaScript。

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

2 个答案:

答案 0 :(得分: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;
}, {});

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

答案 1 :(得分:0)

这样的东西
var arra = ['ab','pq','mn','ab','mn','ab']

function wordCount(arra,val)
{
    var ob={};
    var len=arra.length;
    for(var k=0;k<len;k++)
    {
        if(ob.hasOwnProperty(arra[k]))
        {
            ob[arra[k]]++;
            continue;
        }
        ob[arra[k]]=1;
    }
    return ob[val];
}

alert(wordCount(arra,'ab')); //output 3