javascript - 有人可以用 Javascript 解释 .indexOf() 的逻辑吗?

标签 javascript arrays indexof

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/

相关文章:

java - 您可以使用增强的 for every 循环将元素添加到数组中吗?

python - 如何乘以列表列表的位置

java - 在两个不同的字符串中查找相同的单词

javascript - RequireJS 优化器 - 一个 JS 文件与整个项目

javascript - 在 Angular 中注入(inject)$window,有什么用?

php - 在 PHP 7 中处理 foreach by-ref

c# - 在另一个文本文件中搜索一个文本文件的行,速度更快

javascript - indexOf 不断返回 -1 Javascript

javascript - 在 JavaScript 中设置为字符串

javascript - 如何在单击缩略图时添加指定的样式(应用不透明度后立即可见的文本)?