Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiodurgante

procurar string em array

Recommended Posts

ola quero verificar se string contem no array fiz o seguinte porem nao funciona



 var respostascertas= ['short',
'2',
'nose',
'eyes',
'mouth',
'dividir',
'somar',
'Mais',
'menos'];

 

function verifica(ite)  {
             alert(ite)
            
               if(respostascertas.indexOf(ite))     {
             
                   alert("SIM")
               } else {
                   alert("NAO")
               }
            
       }

[\code]

sempre mostra SIM independente dao valor da variavel ite, se variavle ite estiver no array SIM senao NAO mas sempre mostra SIM o que posso fazer ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei qual é o problema, eu adaptei o codigo porque estava rodando direto do node.

O problema é que quando você usa  indexOf()   ele não faz uma busca dentro do vetor procurando a palavra que voce deu a ele.

Mas quando o indexOf NÃO encontra o valor digitado, ele retorna o   -1 .

Por isso a verificação que você deve fazer é igual a que está abaixo.

if (respostascertas.indexOf(ite) == -1)
var respostascertas = ['short',
    '2',
    'nose',
    'eyes',
    'mouth',
    'dividir',
    'somar',
    'Mais',
    'menos']


function verifica(ite) {
    console.log(ite)

    if (respostascertas.indexOf(ite) == -1) {  // Caso o parametro nao seja encontrado no vetor, retorna o valor -1, e se esse valor nao existir no vetor, entao da o alerta NAO
        console.log("NAO")
    } else {
        console.log("SIM")
    }

}

verifica('claro')   // Dentro do parametro vai o que você deseja buscar no vetor.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere o seu if para

if(respostascertas.indexOf(ite) != -1) 

a função indexOf retorna -1 caso não encontra um resultado.

 

Pelo que pesquisei, se você verificar um valor do tipo inteiro no Javascript, ele retorna true para qualquer valor diferente de 0 (ou seja numeros negativos como -1), e retorna false para valores igual a 0.

Por isso o resultado -1 está entrando no seu if.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.