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