首页 > 解决方案 > 如何使用 Javascript 过滤掉数组中的特定单词

问题描述

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

这是我当前的代码:

let words = ['mango','desk','phone','banana','airpods', 6 ,'mouse','strawberry',9,'raspberry', 10];

let wordsArrayLength = words.length;

for (let wordLoop = 0; wordLoop < wordsArrayLength; wordLoop++ ) {

}

所以我想我会做一个.filter()然后喊出这些名字,然后用这个词替换它们,Fruit但我现在有点卡住了,我不知道如何从这里继续......我在网上找不到任何有帮助的东西我有这个,所以也许我并没有真正为自己做一个很好的锻炼?

另外,如果有人对使用 Javascript 练习什么有任何提示,请告诉我。我想接下来做一个谜题/测验。我只是想知道我现在尝试做的事情是否有解决方案,或者我是否继续前进。

标签: javascriptloopsfor-loop

解决方案


您不想filter说出单词 - 您想创建一个与原始数组一对一的数组,只替换水果单词。改为使用.map

您还可以将预定义的水果词放入Set以降低运行时复杂性:

const fruits = new Set(['mango', 'banana', 'strawberry', 'raspberry']);
const input = ['mango','desk','phone','banana','airpods', 6 ,'mouse','strawberry',9,'raspberry', 10];
const mapped = input.map(val => fruits.has(val) ? 'fruit' : val);
console.log(mapped);

或者,仅使用数组方法,您将测试水果是否includes将值排列为数组:

const fruits = ['mango', 'banana', 'strawberry', 'raspberry'];
const input = ['mango','desk','phone','banana','airpods', 6 ,'mouse','strawberry',9,'raspberry', 10];
const mapped = input.map(val => fruits.includes(val) ? 'fruit' : val);
console.log(mapped);


推荐阅读