计算给定长度范围的单词

时间:2019-06-29 10:46:31

标签: javascript

我必须使用JavaScript返回句子中的单词数,该句子中的参数个数必须介于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

2 个答案:

答案 0 :(得分:5)

您要比较字符串和数字(​​例如:(a[i]>=min),应该比较字符串的长度(例如:(a[i].length >= 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));

此外,您使用了=<这是无效的语法,等号前的符号必须大于或小于。

答案 1 :(得分:0)

您就在那里。只需检查length中的a[i]而不是元素本身即可。

但是您也可以使用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));