【问题标题】:Counting words with a given length range计算给定长度范围的单词
【发布时间】:2019-06-29 10:46:31
【问题描述】:

我必须使用 JavaScript 返回一个句子中的单词数,该句子中的字符数介于 param min 和 max 之间。

长度可以包括最小值和最大值

例如, findWordsWithLengthRange("生活是要产生影响,而不是赚钱", 6,8) 返回值应该等于4

下面是我试过的功能。

function wordLengthCount(str, min, max) {

    var a = str.split(' ');

    var count=0;

    for(var i =0; i<a.length ; i++){

        if(a[i]>=min && a[i]=<max){

            count += 1;
        }
     }

     return count;
}

console.log(wordLengthCount("The weather is so good today", 2, 5));

使用上面的代码,计数始终为 0。 上面的实际结果应该是5

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您正在将字符串与数字进行比较(例如:(a[i]&gt;=min),您应该比较字符串的长度(例如:(a[i].length &gt;= min)。

    这是您的方法的工作版本:

    function wordLengthCount(str, min, max) {
      var a = str.split(' ');
      var count = 0;
      for (var i = 0; i < a.length; i++) {
        if (a[i].length >= min && a[i].length <= max) {
          count += 1;
        }
      }
      return count;
    }
    
    console.log(wordLengthCount("The weather is so good today", 2, 5));

    另外,您使用了无效语法=&lt;,大于和小于符号必须位于等号之前。

    【讨论】:

      【解决方案2】:

      你就在那里。只需要检查a[i]length 而不是元素本身。

      但您也可以使用 filter() 来做到这一点

      const wordLengthCount = (str, min, max) => 
             str
              .split(' ')
              .filter(({length}) => length >= min && length <= max)
              .length 
      
      console.log(wordLengthCount("The weather is so good today", 2, 5));

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-01
        • 1970-01-01
        • 2017-10-09
        • 2016-05-21
        • 1970-01-01
        • 2021-11-27
        • 1970-01-01
        相关资源
        最近更新 更多