【发布时间】:2020-05-02 04:56:26
【问题描述】:
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 中的任何内容 声明。
有人可以解释一下逻辑并举一个简单的例子吗?我想我明白了逻辑,但同时我认为我没有。
【问题讨论】:
-
是的,你是对的。它返回数组中元素的第一个索引,如果未找到则返回 -1。 docs中的完整详细信息和示例
-
> -1 与 >= 0 相同,即元音的索引。
标签: javascript arrays indexof