好吧,我是Java语言的新手,我只是想弄清楚循环以及如何使用它们。所以我想出了一个练习:
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++ ) {
}
所以我想我会做一个.filter()
然后叫出那些名字,并用单词Fruit
代替它们,但是我现在有点卡住了,我不知道该怎么去从这里开始...我在网上找不到任何可以帮助我解决这个问题的东西,所以也许我没有为自己做一个很好的锻炼?
如果有人对使用Javascript进行实践有什么建议,请告诉我。我正在考虑下一个谜题/测验。我只是想知道我现在想做的事情是否有解决方案,或者我只是继续前进。
答案 0 :(得分:1)
您不想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);
答案 1 :(得分:0)
您可以使用地图(https://www.w3schools.com/jsref/jsref_map.asp)
所以map函数的作用是循环遍历数组中的每一项并将其传递给函数,以便您可以转换该值
答案 2 :(得分:0)
您可以创建一个名为fruits
的新数组,该数组将包含所有水果项目。这样,您可以循环到words
数组,并使用fruits.indexOf()
检查项目是否为水果。如果只是将其替换为Fruit
:
let fruits = ['mango','banana','strawberry','raspberry'];
let words = ['mango','desk','phone','banana','airpods', 6 ,'mouse','strawberry',9,'raspberry', 10];
words.forEach((word, index) => {
if(fruits.indexOf(word) !== -1){
words[index] = 'Fruit';
}
});
console.log(words);