如何使用Javascript过滤出数组中的特定单词
好吧,我是Javascript新手,我只是想了解循环的诀窍以及如何使用循环。所以我想出了一个练习:如何使用Javascript过滤出数组中的特定单词,javascript,loops,for-loop,Javascript,Loops,For Loop,好吧,我是Javascript新手,我只是想了解循环的诀窍以及如何使用循环。所以我想出了一个练习: 我将创建一个随机单词数组,其中一些是水果 我希望循环通过数组(我走了这么远) 接下来,我只想过滤掉水果词,(它们被称为mango,banana等),我想用单词fruit 这是我当前的代码: let words = ['mango','desk','phone','banana','airpods', 6 ,'mouse','strawberry',9,'raspberry', 10]; le
- 我将创建一个随机单词数组,其中一些是水果
- 我希望循环通过数组(我走了这么远)
- 接下来,我只想过滤掉水果词,(它们被称为
,mango
等),我想用单词banana
fruit
let words = ['mango','desk','phone','banana','airpods', 6 ,'mouse','strawberry',9,'raspberry', 10];
let wordsArrayLength = words.length;
for (let wordLoop = 0; wordLoop < wordsArrayLength; wordLoop++ ) {
}
let words=['mango','desk','phone','banana','airpods',6','mouse','草莓',9','raspberry',10];
让wordsArrayLength=words.length;
for(让wordLoop=0;wordLoop
所以我想我会做一个.filter()
,然后说出那些名字,用水果
这个词来代替它们,但我现在有点卡住了,我不知道如何从这里开始。。。我在网上找不到任何对我有帮助的东西,所以也许我没有真正为自己做一个好的锻炼
另外,如果有人对如何使用Javascript进行练习有任何建议,请告诉我。我想下一步做一个拼图/测验。我只是想知道我现在想做的事情是否有解决方案,或者我是否继续前进。你不想
过滤出单词-你想创建一个与原始数组一对一的数组,只替换水果单词。改用.map
您还可以将预定义的水果词放入集中
,以降低运行时的复杂性:
const fruits=new Set(['mango','banana','草莓','raspberry']);
常量输入=['mango'、'desk'、'phone'、'banana'、'airpods',6、'mouse'、'草莓'、9、'raspberry',10];
const-mapped=input.map(val=>fruits.has(val)-“fruit”:val);
console.log(映射)
您不想过滤出单词-您想创建一个与原始数组一对一的数组,只替换水果单词。改用.map
您还可以将预定义的水果词放入集中
,以降低运行时的复杂性:
const fruits=new Set(['mango','banana','草莓','raspberry']);
常量输入=['mango'、'desk'、'phone'、'banana'、'airpods',6、'mouse'、'草莓'、9、'raspberry',10];
const-mapped=input.map(val=>fruits.has(val)-“fruit”:val);
console.log(映射)代码>您可以使用map()执行此操作
因此,map函数所做的是循环数组中的每个项,并将其传递给函数,以便您可以转换该值
因此,map函数所做的是循环遍历数组中的每个项,并将其传递给函数,以便您可以转换该值,您可以创建一个名为水果的新数组,该数组将包含所有水果项。使用它,您可以循环到单词
数组,并使用水果.indexOf()
检查项目是否为水果。如果它只是简单地用水果替换这个词:
let fruits=[‘芒果’、‘香蕉’、‘草莓’、‘覆盆子’];
让单词=[‘芒果’、‘桌子’、‘电话’、‘香蕉’、‘airpods’、6、‘老鼠’、‘草莓’、9、‘覆盆子’、10];
words.forEach((单词,索引)=>{
if(水果索引of(单词)!=-1){
文字[索引]=“水果”;
}
});
控制台日志(文字)
您可以创建一个名为水果
的新数组,该数组将包含所有水果项。使用它,您可以循环到单词
数组,并使用水果.indexOf()
检查项目是否为水果。如果它只是简单地用水果替换这个词:
let fruits=[‘芒果’、‘香蕉’、‘草莓’、‘覆盆子’];
让单词=[‘芒果’、‘桌子’、‘电话’、‘香蕉’、‘airpods’、6、‘老鼠’、‘草莓’、9、‘覆盆子’、10];
words.forEach((单词,索引)=>{
if(水果索引of(单词)!=-1){
文字[索引]=“水果”;
}
});
控制台日志(文字)代码>这成功了!但是我只理解这个代码,直到:fruits.indexOf(word)!=-1.为什么要使用!==-1.(非常抱歉,我正处于noobie阶段)@Kiralin如果数组中存在该元素,则该元素的索引将根据它们所处的位置为0或大于0。但是如果它们不存在,它们的索引是-1
所以水果。indexOf(word)!=-1
表示单词
存在于数组中。您也可以使用fruits.indexOf(word)>=0
这很有效!但是我只理解这个代码,直到:fruits.indexOf(word)!=-1.为什么要使用!==-1.(非常抱歉,我正处于noobie阶段)@Kiralin如果数组中存在该元素,则该元素的索引将根据它们所处的位置为0或大于0。但是如果它们不存在,它们的索引是-1
所以水果。indexOf(word)!=-1
表示单词
存在于数组中。您还可以使用fruits.indexOf(word)>=0