Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript计算文本区域中所有单词的出现次数?_Javascript_Jquery - Fatal编程技术网

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

如何使用Javascript计算文本区域中所有单词的出现次数?,javascript,jquery,Javascript,Jquery,如果我有一个textarea,用户将一个段落粘贴到textarea中,那么可以在客户端使用JavaScript在输入上运行统计信息吗?我想使用一个关联数组或散列映射,以便数组[word]->#出现,并逐字迭代,但我不确定如何使用客户端JavaScript实现这一点 我尝试搜索JavaScript字数,但我只得到计算总字数的结果,这不是我要找的。我要找的是更多地记录每一个特定的单词。这可以在Javascript或Jquery中完成吗?如果是这样的话,我应该怎么做呢?这里有一个方法供您参考 // f

如果我有一个textarea,用户将一个段落粘贴到textarea中,那么可以在客户端使用JavaScript在输入上运行统计信息吗?我想使用一个关联数组或散列映射,以便数组[word]->#出现,并逐字迭代,但我不确定如何使用客户端JavaScript实现这一点


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

这里有一个方法供您参考

// 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;
}, {});
更新:一个处理标点符号和大写/小写的小例子:

类似

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
var arra=['ab','pq','mn','ab','mn','ab']
函数字计数(arra,val)
{
var ob={};
var len=阵列长度;

对于(var k=0;kYou也需要处理
word、
word.
word!
)等的大小写。是的,你也应该处理小写/大写、数字等。但我想我把它作为OPYa的练习,这肯定是一个很好的开端。本读者处理这个练习的一种方式(:smile:)是
var words=text(/\W*(?:\s | ^ |$)+\W*/g',).split(“”;…
)。