首页 > 解决方案 > 从字符串中删除不需要的单词数组

问题描述

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

目标是找到招聘广告中出现频率最高的术语。我想找到实际的文本,并去掉“function”、“and”、“or”、“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. a (28 次出现)
  5. 打开(出现 28 次)
  6. 下降(28 次)
  7. (20 次)
  8. 是(19 次出现)
  9. var(出现 14 次)
  10. 是(14 次出现)

标签: javascriptreplace

解决方案


使用过滤器。

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();

推荐阅读