显示文本区域中重复的单词数

时间:2014-11-22 10:56:21

标签: javascript dom textarea repeat

我用这个提取字数:

var sim = /\s+/gi;                                                     

var words= parag.value.trim().replace(sim, ' ').split(' ').length;

我想表达重复的话,我怎么做?

1 个答案:

答案 0 :(得分:2)

以下代码段会在文本中为您提供一系列重复的字词:

var text = "this is this and that was that";
var frequency = text.split(' ').reduce(function(previous, current) {
    if (!previous.hasOwnProperty(current)) {
        previous[current] = 0;
    }
    previous[current] += 1;
    return previous;
}, {});

var repeatedWords = Object.keys(frequency).filter(function(element) {
    return frequency[element] > 1;
});

console.log(repeatedWords);
// => ["this", "that"]
  1. 将文本拆分为令牌。
  2. 将数组减少为对象。
  3. 初始化一个空对象。
  4. 如果令牌不存在,请将其设置为0.
  5. 将令牌数增加一个。
  6. 浏览每个令牌。
  7. 过滤计数大于1的令牌。