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

问题描述 投票:2回答:2
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内的任何内容声明。

有人可以解释一下逻辑并举一个简单的例子吗?我想我明白了逻辑,但同时我想我没有。

javascript arrays indexof
2个回答
0
投票

indexOf函数在元音数组中搜索。

如果找到一个值,它将返回它的索引,因此结果将大于-1。

如果找不到它,结果将为-1。

但是最好使用if(vowels.indexOf(s[j]) === -1)代替if(vowels.indexOf(s[j]) < 0)


0
投票

除非您实际上需要知道索引才能对其执行某些操作,但在现代JS中,最好使用.includes()而不是针对-1或0进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.