我必须使用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
答案 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));