Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript过滤出数组中的特定单词_Javascript_Loops_For Loop - Fatal编程技术网

如何使用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

好吧,我是Javascript新手,我只是想了解循环的诀窍以及如何使用循环。所以我想出了一个练习:

  • 我将创建一个随机单词数组,其中一些是水果
  • 我希望循环通过数组(我走了这么远)
  • 接下来,我只想过滤掉水果词,(它们被称为
    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