为什么这个if语句会返回一些矛盾的东西?

时间:2016-12-29 00:50:22

标签: javascript function

我正在努力使这个猪拉丁语功能,但遇到了这个奇怪的问题。当我检查第一个字符是否在元音数组中时,它不是,if语句返回它是!

所以我检查了我的病情是否有问题,但它明显返回-1。

如果这不是-1,则返回字母的索引是我要求的,并返回-1。完全没有意义。

function translatePigLatin(str) {
  vowels = ['a','e','i','o','u'];

  if (vowels.indexOf(str.charAt(0) != -1)){
    return vowels.indexOf(str.charAt(0));
  } else {
    return false;
  } 
}

translatePigLatin("consonant");

任何人都能解释一下吗?

1 个答案:

答案 0 :(得分:2)

在if语句中,您正在检查indexOf您的条件。您只想检查indexOf(str.charAt(0))。因此,将该行重写为:

if (vowels.indexOf(str.charAt(0)) != -1){