Ir para conteúdo
Fórum Script Brasil
  • 0

IndexOf


.Andreia.

Pergunta

Pessoal,

a dúvida é o seguinte: como usar o indexOf em array e combo? exemplo:

meuArray = new Array('Nome', 'Cidade', 'Endereco');
var texto = 'Cidade';

alert(meuArray.indexOf('Cidade');
Pra exibir a posição dele no array = 1 E no combo:
meuCombo.indexOf('Endereco')

Pra retornar o indice 2

em ambos os casos, retorna o seguinte erro:

O objeto não dá suporte para a propriedade ou método.

alguém tem ideia de como seria, sem ser por função criada e sim com o indexOf?

Obrigada

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

//meuArray = new Array('Nome', 'Cidade', 'Endereco');
meuArray = 'Nome Cidade Endereco';
var texto = 'Cidade';
alert(meuArray.indexOf(texto));

andreia, fiz um teste aqui, e realmente não funfou, fui pesquisar sobre o metodo indexOf e encontrei isto aí

IndexOf

Retorna a posição (índice) da primeira ocorrencia do argumento (substring) encontrada dentro de InstStr. Se nenhuma ocorrência for encontrada, o método retornará -1

InstStr.IndexOf(substring[, inicio]);

Argumentos

substring: Substring a ser pesquisada em instStr.

início: Ìndice do ponto de ínicio da pesquisa da substring dentro do objeto. Se não for especificado a pesquisa será feita desde o início do objeto. Se for usado um valor negativo, inicio será considreado 0; se for usado um valor maior do que o ultimo índice da string,o último índice será utilizado.

Talvez não funcione com Array, só com String.

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Orlando, mas se eu coloco:

var nova= new Array("gabinete","mouse","teclado");
var texto= "teclado";
var mostra= nova[0].indexOf(texto);
document.write(mostra);

ele imprime -1, sendo que deveria me trazer o indice 2

eu cheguei a montar uma função pra pegar o indice e funciona 100%, eu só queria saber se existe uma forma melhor.

valeus

Link para o comentário
Compartilhar em outros sites

  • 0

Para Array:

    var meuArray = new Array('Nome', 'Cidade', 'Endereco');
    Array.prototype.posi = function (strPos) {
                    for (i in this) {
                    if(this[i] == strPos) return i;
                    };
    };
    var texto = 'Cidade';
    alert(meuArray.posi(texto));

Acho que da para usar a mesma idéia para o combo.

:rolleyes:

Link para o comentário
Compartilhar em outros sites

  • 0

JCMPJ, eu tinha feito algo bem parecido com isso. Como disse antes, que funcionou 100%:

para o array:

function fArray(array, texto)
{
    var Indice, Tamanho;
    Indice = -1;
    Tamanho = array.length;
    
    for (var i=0; i < Tamanho; i++)
    {
        if (array[i] == texto)
        {
            Indice = i;
            break;
        }
    }
    return Indice;
}
para o combo:
function fCombo(Combo, texto)
{
    var Indice, Tamanho;
    Indice = -1;
    Tamanho = Combo.length;

    for (var i=0; i < Tamanho; i++)
    {
        if (Combo.options[i].value == texto)
        {
        Indice = i;
        break;
        }
    }
    return Indice;
}

obrigada

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...