Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 扫描一个特定的div并显示3个最常用的单词_Javascript_Jquery - Fatal编程技术网

Javascript 扫描一个特定的div并显示3个最常用的单词

Javascript 扫描一个特定的div并显示3个最常用的单词,javascript,jquery,Javascript,Jquery,这是我的标记: <body> <div id="headbox"> <p>Whatever...</p> </div> <div id="feed"> <div> <p>I hate cats</p> </div> <div> <p>I like cats</p> <

这是我的标记:

<body>
  <div id="headbox">
    <p>Whatever...</p>
  </div>
    <div id="feed">
    <div>
    <p>I hate cats</p>
    </div>
    <div>
    <p>I like cats</p>
    </div>
    <div>
    <p>I like cats</p>
    </div>
    <div>
    <p>I like cats</p>
    </div>
  </div>
</body>

不管怎样

我讨厌猫

我喜欢猫

我喜欢猫

我喜欢猫

交易是我需要一个脚本来计算出现在
中的所有单词

输出应包装在
标记或
标记中

<h3>The top 3 used words in this feed:</h3>
1.&nbsp;<p>cats</p>&nbsp;4x
2.&nbsp;<p>like</p>&nbsp;3x
3.&nbsp;<p>hate</p>&nbsp;1x
此提要中使用的前3个单词:
1.  猫

4x 2. 像

3x 3. 仇恨

1x
这将是输出


正如你所看到的,这个词(或者更好的是字母)
I
没有被考虑。计数时不考虑3个字母以下的每个单词。

只需在innerHTMLs中循环,在空格上拆分文本,并使用结果数组的每个值添加或更新主数组,该主数组由找到的单词索引,其值为单词的计数。

用空格拆分目标元素的内部文本,计算词频,按最频繁的词频排序,并根据您的要求设置前三名的格式

类似这样(未经测试):

var getMostFrequentWords=函数(单词){
var freq={},freqArr=[],i;
//将每个单词映射到“freq”中的频率。
对于(i=0;i
这就是我对单词进行排序的方法。在HTML的某个地方,我将有一个ol元素用于自动编号

var ol = document.getElementById('myOl');
var sorted_words = [];
for(var i in words) if(words.hasOwnProperty(i) {
    sorted_words.push([i, words[i]]);
}
sorted_words.sort(function(a, b){
    return  b[0] - a[0];
})
.reverse()
.slice(0, 3)
.forEach(function(n, i, ary){
    var li = document.createElement('li')
            .appendChild(document.createElement('p'))
            .textContent = n[1] + " " + n[0] + "x";
    ol.appendChild(ul);
});

像这样的东西应该有用…

你试过
我喜欢乌龟吗?
?是的。乌龟是很好的宠物。你应该试一下乌龟。:)别傻了,但这个问题值得否决,因为它“没有显示任何研究成果”.来吧,Tomkay,你至少得试试…+1,但我建议使用主对象而不是主数组。@nnnnnn,我唯一关心的对象是计算诸如
它是
和其他缩略语之类的单词。属性名中不允许使用撇号。什么?没有我可以直接复制和粘贴的自定义脚本?@Tomkay,没错。只要告诉我你的信用卡号码,它就会在那里。:)你可以的,伙计。试试看。@Jonathan M:它是:
var o={};o[“it's”]=123;
var text = document.getElementById('myDiv').textContent.split(' ');
var words = {};
text.forEach(function(n, i, ary){
    if(n.length > 3) {
        words[n] = (words[n] || 0) + 1;
    }
});
var ol = document.getElementById('myOl');
var sorted_words = [];
for(var i in words) if(words.hasOwnProperty(i) {
    sorted_words.push([i, words[i]]);
}
sorted_words.sort(function(a, b){
    return  b[0] - a[0];
})
.reverse()
.slice(0, 3)
.forEach(function(n, i, ary){
    var li = document.createElement('li')
            .appendChild(document.createElement('p'))
            .textContent = n[1] + " " + n[0] + "x";
    ol.appendChild(ul);
});