2016-12-29 2 views
1

Я пытаюсь сделать эту функцию латинской свиньи, но столкнулся с этой странной проблемой. Когда я проверяю, находится ли первый символ в массиве гласных, чего нет, оператор if возвращает это!Почему это утверждение 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"); 

Может ли это объяснить это?

+4

Вы неправильно '(...)' там :) – Dekel

+3

вы делаете '= -1' внутри' indexOf' аргумент! –

+0

dang спасибо, что указал парням, я чувствую себя глупым. – Danny

ответ

2

В вашей инструкции if вы проверяете значение indexOf вашего условия. Вы просто хотите проверить indexOf (str.charAt (0)). Таким образом, переписать эту строку:

if (vowels.indexOf(str.charAt(0)) != -1){ 
Смежные вопросы