Javascript 在.filter()中是否可以使用if/else/还有其他方法吗?

Javascript 在.filter()中是否可以使用if/else/还有其他方法吗?,javascript,if-statement,iterator,Javascript,If Statement,Iterator,任务: 有一组词被称为overusedWords。这些词在这个故事中用得太多了。您希望让程序的用户知道他们使用这些过度使用的单词的次数。有两种方法可以实现这一点。先自己试试。如果您需要帮助,请参考提示 提示: 1.您可以在betterWords数组上迭代三次(对于overusedWords数组中的每个单词迭代一次)。创建一个变量,该变量表示word出现的总时间。每次当前单词与该单词相同时,向变量添加1 2.通过在迭代器的函数代码块中使用一个if和两个else if语句,可以简化此过程。这样,您可

任务:

有一组词被称为overusedWords。这些词在这个故事中用得太多了。您希望让程序的用户知道他们使用这些过度使用的单词的次数。有两种方法可以实现这一点。先自己试试。如果您需要帮助,请参考提示

提示:

1.您可以在betterWords数组上迭代三次(对于overusedWords数组中的每个单词迭代一次)。创建一个变量,该变量表示word出现的总时间。每次当前单词与该单词相同时,向变量添加1

2.通过在迭代器的函数代码块中使用一个if和两个else if语句,可以简化此过程。这样,您可以一次收集所有三个过度使用的单词的计数

代码:


您可以定义自己的函数作为过滤器。例如,如果给我一个年龄数组,并且只想返回20到35岁之间的年龄,我可以执行以下操作:

var ages = [32, 33, 16, 40];

console.log(ages.filter(checkAge));

function checkAge(age) {
  if (age > 20 && age < 35) {
    return age;
  }
}            
如果,使用单个
如何

conststory=`上周末,我骑了一次世界上最漂亮的自行车
我的生活。这条路线被称为“从9W到Nyack”,它实际上是延伸的
从曼哈顿的河滨公园一直到新泽西州的南尼亚克。
这真是一次从头到尾的冒险!这是一条48英里长的环线
基本上花了我一整天的时间。我在河岸州立公园停下来休息
拍一些非常艺术的照片。不过,这是一次短暂的停留,因为我
还有很长的路要走。在一次快速拍照后
受欢迎的小红灯塔,我开始穿越乔治河
华盛顿大桥通往新泽西州。千兆瓦实际上很长——4760
脚!到了对岸时,我已经很累了。一
一小时后,我到达了格林布鲁克自然保护区,一个非常美丽的地方
沿着哈德逊河海岸停车。非常令人惊讶的事情
对我来说,是在接近路线的终点时,你实际上会穿越回到纽约
约克!在这一点上,你非常接近终点;
const storyWords=story.toLowerCase().split(“”);
const overusedWords=[“真的”、“非常”、“基本上”];
const results=storyWords.reduce((acc,word)=>{
如果(过度使用的单词。包括(单词)){
acc[word]=(acc[word]| 0)+1;
}
返回acc;
}, {});

console.log(results)
我投票将此问题作为离题题结束,因为它看起来像是家庭作业,看不到OP的任何努力。请查看一些关于如何寻求家庭作业帮助的指导。要回答标题中的问题,请使用
if
inside
过滤器
<代码>过滤器
接受一个函数;显然,在经典的
函数(arg){…}
函数中,如果
,则可以使用
。您正在使用的arrow函数有两种形式:表达式形式
arg=>expr
和块形式
arg=>{…}
。不能在表达式窗体内使用
if
,但可以使用三元运算符。如果
在块内,则可以使用
var ages = [32, 33, 16, 40];

console.log(ages.filter(checkAge));

function checkAge(age) {
  if (age > 20 && age < 35) {
    return age;
  }
}            
Array [ 32, 33 ]