从字符串中删除不需要的单词数组

时间:2019-04-12 15:13:42

标签: javascript replace

我有一个要从术语列表中删除的“垃圾单词”数组。

目标是在招聘广告中查找最频繁出现的术语。我想找到实际的文本,并去除诸如“功能”,“与”,“或”,“ a”等之类的词。

这将被合并到书签中。

我拥有的脚本去除了其中的一些,但不是全部!

我已经尝试了StackOverflow上所有建议的链接,到目前为止,所有链接都很短-我可能丢失了一些东西,但是没有主意。

javascript:var page=window.location.href;
var counts={};
var text=document.body.textContent||document.body.innerText||'';

var garbageString = ["of", "the", "in", "on", "at", "to", "a", "is", "and", "function", "open", "drop", "be"];
var text = text.split(" ");
for(var i=0; i < garbageString.length; i++){
    for(var j=0; j < text.length; j++){
        if(text[j].toLowerCase() === garbageString[i]){
            text.splice(j, 1);
        }
    }
}
text = text.join(" ");


var words=text.split(/\b/).filter(function(word){return word.match(/^\w+$/)!==null});

words.forEach(function(word){counts['_'+word.toLowerCase()]=(counts['_'+word]||0)+1});
var sorted=Object.keys(counts).sort(function(a,b){return counts[b]-counts[a]});
var message=sorted[0]===undefined?'No words found!':'<center><b>For the page: <i><font color=\"#0000FF\" size=\"-2\">'+page+'<\/i><\/font><br\/>The Top 20 words are:<\/center><\/b><br>';
sorted.forEach(function(word,index){
if(index>19||word===undefined)return;message+='\n#'+(index+1)+': '+word.substring(1)+' ('+counts[word]+' occurrences)<br>'});
w=window.open('','Word Mode','scrollbars,resizable,width=250,height=500');
w.document.write(message);

当我在这样的URL上测试小书签时:

https://jobs.jpmorganchase.com/ShowJob/Id/208140/VP,%20Software%20Engineering%20%E2%80%93%20Agile%20Coach

我想查看与招聘广告和技能有关的术语列表; 不是这个:

  1. 至(51次)
  2. 和(43次出现)
  3. 功能(29次出现)
  4. 一个(28次出现)
  5. 开放(28次出现)
  6. 掉落(28次)
  7. (共20次)
  8. 是(19次)
  9. var(14次出现)
  10. 是(14次出现)

1 个答案:

答案 0 :(得分:0)

使用过滤器。

var text=document.body.textContent||document.body.innerText||'';

var garbageString = ["of", "the", "in", "on", "at", "to", "a", "is", "and", "function", "open", "drop", "be"];

var words = text.split(" ");

var filteredWords = words.filter(function(word) {
   return garbageString.indexOf(word.toLowerCase()) === -1;
}).sort();