如何用纯JavaScript实现数组的大小写不敏感值搜索?
解决大小写不敏感的动物搜索问题
没问题,咱们来调整代码实现大小写不敏感的搜索!原来的includes()方法是严格区分大小写的,所以直接用它的话,输入"panda"就匹配不到数组里的"Panda"。我们只需要把输入值和数组里的元素统一转成相同大小写(比如全小写)再做比较就行。
这里用some()方法代替includes()会更灵活,它可以遍历数组并检查是否有元素符合我们的匹配条件:
function animal() { const animals = ["Panda", "Snake", "Lemur", "Tortoise", "Whale", "Cat", "Elephant", "Jaguar", "Panther", "Llama", "Horse", "Cheetah", "Leopard", "Anteater", "Tazmanian Devil"]; // 获取输入值并转成全小写 const inputValue = document.getElementById("animalName").value.toLowerCase(); // 遍历数组,每个元素也转小写后和输入值比较 const isAnimalAvailable = animals.some(animal => animal.toLowerCase() === inputValue); if(isAnimalAvailable){ console.log("That animal is available"); } else{ console.log("That animal isn't in our list"); } }
关键修改点说明:
- 把数组变量名改成
animals(原来的函数名和变量名重复了,虽然JavaScript允许,但这样命名更清晰) - 用
toLowerCase()把输入值和数组元素都转成小写,彻底消除大小写差异 - 使用
some()方法判断是否存在匹配项,它会在找到第一个匹配元素后就停止遍历,比遍历整个数组更高效
你也可以选择用toUpperCase()统一转成大写,逻辑完全一致,只要两边的转换方式保持统一就好。
内容的提问来源于stack exchange,提问作者charles dim
相关产品推荐
相关产品推荐

