如何显示每个长度的单词列表 - Javascript

时间:2017-03-15 00:42:50

标签: text-files

大家好我真的陷入了这种情况:S我有一个带有随机句子的本地.txt文件,我的程序意味着:

我发现执行第三个问题很困难。我的代码是......

的JavaScript

      lengths.forEach((leng) => {
      counter[leng] = counter[leng] || 0;
      counter[leng]++;

});     
      $("#display_File_most").text(counter);

     }


    }          
        r.readAsText(f);
    }
});

  </script> 

我已经用这个问题寻求帮助,但没有运气 - Using Javascript to find most common words in string?

我相信我必须将句子存储在数组中并循环遍历它,不确定这是否是正确的步骤,或者是否有更快的方法找到解决方案,所以我问你们。

感谢您的时间和我希望我的问题有道理:)

2 个答案:

答案 0 :(得分:1)

  

3.制作句子中每个长度的单词列表(未完成)。

基于这个问题,这不是解决方案吗?

var words = str.split(" ");
var count = {};

for (var i = 0; i<words.length; i++){
 count[words[i].length] = (count [words[i].length] || 0) + 1
}

答案 1 :(得分:1)

如果您认为您的解决方案是完成分离的任务,那么找到它真的很简单。在这里你可以将它们放在一起:

  1. 将单词转换为数组。你的胆量是正确的:))

    var source = "Hello world & good morning. The date is 18/09/2018";
    var words = source.split(' ');
    
  2. 下一步是找出每个单词的长度

    var lengths = words.map(function(word) { 
      return word.length; 
    });
    
  3. 最后,最复杂的部分是获取每个长度的出现次数。一个想法是使用一个对象来使用键/值,其中键是长度,值是它的计数(来源:https://stackoverflow.com/a/10541220/1505348

  4. 现在,您将在counter对象下看到每个字长以及源字符串上的重复数。

    var source = "Hello world & good morning. The date is 18/09/2018";
    var words = source.split(' ');
    
    var lengths = words.map(function(word) { 
      return word.length; 
    });
    
    var counter = {};
    lengths.forEach((leng) => {
      counter[leng] = counter[leng] || 0;
      counter[leng]++;
    });
    
    console.log(counter);