【问题标题】:Count particular words used in a variable?计算变量中使用的特定单词?
【发布时间】:2017-10-27 11:27:36
【问题描述】:

目前正在从事 CodeAcademy JS 项目。

let story = 'Last weekend, I took literally the most beautiful bike ride of my life. The route is called "The 9W to Nyack" and it actually stretches all the way from Riverside Park in Manhattan to South Nyack, New Jersey. It\'s really an adventure from beginning to end! It is a 48 mile loop and it basically took me an entire day. I stopped at Riverbank State Park to take some extremely artsy photos. It was a short stop, though, because I had a really long way left to go. After a quick photo op at the very popular Little Red Lighthouse, I began my trek across the George Washington Bridge into New Jersey.  The GW is actually very long - 4,760 feet! I was already very tired by the time I got to the other side.  An hour later, I reached Greenbrook Nature Sanctuary, an extremely beautiful park along the coast of the Hudson.  Something that was very surprising to me was that near the end of the route you actually cross back into New York! At this point, you are very close to the end.';

let overusedWords = ['really', 'very', 'basically'];

问题是“你想让你的程序的用户知道他们使用了多少次这些过度使用的词。”

努力得到它,提示是使用 If Else 语句,但不确定如何准确。

【问题讨论】:

  • 你到底想达到什么目的?
  • 我想让用户知道他们使用了多少次overusedWords

标签: javascript iterator


【解决方案1】:

您可以使用正则表达式来查找过度使用的单词:

> story.match(/\b(really|very|basically)\b/g).length
8

这将查找 reallyverybasically 并且是单个单词的任何内容(\b 是单词分隔符)。

请注意,match 可能会返回 null,因此您应该在查询长度之前检查它。

【讨论】:

    【解决方案2】:

    您必须使用字符串拆分方法。您还需要替换所有逗号。

    var array = story.replace(/,/g , "").split(' ');
    

    【讨论】:

      【解决方案3】:

      请检查以下代码。

      let story = 'Last weekend, I took literally the most beautiful bike ride of my life. The route is called "The 9W to Nyack" and it actually stretches all the way from Riverside Park in Manhattan to South Nyack, New Jersey. It\'s really an adventure from beginning to end! It is a 48 mile loop and it basically took me an entire day. I stopped at Riverbank State Park to take some extremely artsy photos. It was a short stop, though, because I had a really long way left to go. After a quick photo op at the very popular Little Red Lighthouse, I began my trek across the George Washington Bridge into New Jersey.  The GW is actually very long - 4,760 feet! I was already very tired by the time I got to the other side.  An hour later, I reached Greenbrook Nature Sanctuary, an extremely beautiful park along the coast of the Hudson.  Something that was very surprising to me was that near the end of the route you actually cross back into New York! At this point, you are very close to the end.';
      
      let overusedWords = ['really', 'very', 'basically'];
      function getCount(){
      for(var i=0; i<overusedWords.length;i++){
      alert(overusedWords[i]+" word count: "+story.split(overusedWords[i]).length);
      }
      }
      &lt;input type ="button" value="test" onclick="getCount()"/&gt;

      【讨论】:

        【解决方案4】:

        let story = 'Last weekend, I took literally the most beautiful bike ride of my life. The route is called "The 9W to Nyack" and it actually stretches all the way from Riverside Park in Manhattan to South Nyack, New Jersey. It\'s really an adventure from beginning to end! It is a 48 mile loop and it basically took me an entire day. I stopped at Riverbank State Park to take some extremely artsy photos. It was a short stop, though, because I had a really long way left to go. After a quick photo op at the very popular Little Red Lighthouse, I began my trek across the George Washington Bridge into New Jersey.  The GW is actually very long - 4,760 feet! I was already very tired by the time I got to the other side.  An hour later, I reached Greenbrook Nature Sanctuary, an extremely beautiful park along the coast of the Hudson.  Something that was very surprising to me was that near the end of the route you actually cross back into New York! At this point, you are very close to the end.';
        var overusedWords = ['really', 'very', 'basically'];
        
        var used = {};
        story.split(/[\s,]+/).forEach(item => {
            if (overusedWords.indexOf(item) >= 0) {
                if (!used[item]) {
                    used[item] = 1
                }
                else {
                 used[item] = used[item]+ 1   
                }
            }
        });
        
        
        console.log(JSON.stringify(used));

        【讨论】:

        • 谢谢你帮了很多忙
        • @conye9980 ,很高兴知道它对您有所帮助!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        • 2019-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多