function vowelsAndConsonants(s) {
var vowels = ['a','e','i','o','u'];
for(let i =0; i<s.length; i++){
if(vowels.indexOf(s[i]) > -1 ){
console.log(s[i]);
}
}
for(let j = 0; j<s.length; j++){
if(vowels.indexOf(s[j]) < 0){
console.log(s[j]);
}
}
}
上面的代码打印出输入的元音和辅音。
我很难理解如何 .indexOf()
特别适用于这种情况。
我明白 .indexOf()
搜索数组并返回要查找的元素的位置,但为什么会出现以下条件 if(vowels.indexOf(s[i]) > -1)
只返回元音?
- 据我了解,如果
.indexOf()
返回 -1 表示没有 找到匹配项。在这种情况下,会if(vowels.indexOf(s[i]) > -1)
意味着如果找到匹配我们应该执行代码,因为它大于 -1? - 同样,在这种情况下
if(vowels.indexOf(s[j]) < 0)
那么就意味着 如果找不到匹配项,则执行 if 中的任何内容 声明。
有人可以解释一下逻辑并举一个简单的例子吗?我想我明白了逻辑,但同时我又觉得我没有。
最佳答案
indexOf
函数在元音数组中搜索。
如果它找到一个值,它将返回它的索引,因此结果将大于 -1。
如果找不到,结果将为-1。
不过最好用
if(vowels.indexOf(s[j]) === -1)
而不是
if(vowels.indexOf(s[j]) < 0)
关于javascript - 有人可以用 Javascript 解释 .indexOf() 的逻辑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61554662/