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

Array


Diego.G.A

Pergunta

Eu gostaria de saber como faço para pegar o elemento anterior al elemento que eu especifico no meu array tipo.

<script>
var arr = new Array(4);
arr['teste1'] = teste1;
arr['teste2'] = teste2;
arr['teste3'] = teste3;
arr['teste4'] = teste4;
</script>

pronto eu especifico o elemento teste3

mas eu queria saber com faço para pegar o elemento anterior dele nesse caso eu queria pegar os dois tipo.

especifico o teste3 ai eu irei receber o resultado teste3 e teste2, como eu posso fazer isso.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

tipo o meu JS é esse aqui:

<script language="javascript" type="text/javascript">
<!--
function selecionaImg(img) {
    document.getElementById("foto").innerHTML = "<img src=\"../Galeria/loading.gif\">";
    document.getElementById("foto").innerHTML = "<img src=\"../Galeria/"+ img +"\">";
}
function imgs(img) {
    var arr = new Array(7);
        arr['mini_b091de3741c61db8b5aef54e82ad1dd6.jpg'] = "b091de3741c61db8b5aef54e82ad1dd6.jpg";
        arr['mini_0a5bd6b49ed5c7adf0c7c13b5ac998cd.jpg'] = "0a5bd6b49ed5c7adf0c7c13b5ac998cd.jpg";
        arr['mini_cd3326582f8f0f56f0b8ed5630aba894.jpg'] = "cd3326582f8f0f56f0b8ed5630aba894.jpg";
        arr['mini_30b46a0d77d143818bd99b36c60c300f.jpg'] = "30b46a0d77d143818bd99b36c60c300f.jpg";
        arr['mini_b04039daa65e1c17dc0b544671b53909.jpg'] = "b04039daa65e1c17dc0b544671b53909.jpg";
        arr['mini_69ae5670041225e331318c6d623ba18c.jpg'] = "69ae5670041225e331318c6d623ba18c.jpg";
        arr['mini_91d5ff66686fdd2fb01b2aaa3de1e932.jpg'] = "91d5ff66686fdd2fb01b2aaa3de1e932.jpg";
        selecionaImg(arr[img]);
}
function passaValor(img) {
    var arr = new Array(7);
        arr['mini_b091de3741c61db8b5aef54e82ad1dd6.jpg'] = "b091de3741c61db8b5aef54e82ad1dd6.jpg";
        arr['mini_0a5bd6b49ed5c7adf0c7c13b5ac998cd.jpg'] = "0a5bd6b49ed5c7adf0c7c13b5ac998cd.jpg";
        arr['mini_cd3326582f8f0f56f0b8ed5630aba894.jpg'] = "cd3326582f8f0f56f0b8ed5630aba894.jpg";
        arr['mini_30b46a0d77d143818bd99b36c60c300f.jpg'] = "30b46a0d77d143818bd99b36c60c300f.jpg";
        arr['mini_b04039daa65e1c17dc0b544671b53909.jpg'] = "b04039daa65e1c17dc0b544671b53909.jpg";
        arr['mini_69ae5670041225e331318c6d623ba18c.jpg'] = "69ae5670041225e331318c6d623ba18c.jpg";
        arr['mini_91d5ff66686fdd2fb01b2aaa3de1e932.jpg'] = "91d5ff66686fdd2fb01b2aaa3de1e932.jpg";
        var elem;
    for(var chave in arr) {
        if(chave == img) {
            var elem = chave;
        }
    }
    for(i=0;i<arr.length;i++) {
        if(arr[elem] == elem) {
            alert(i);
        }
    }
}
//-->
</script>
Na verdade isso ai vai ser uma galeria de umagens que o usuario click e a foto passa beleza. Certo agora eu chamo a função "passaValor()" que nela vai atribuida o nome da chave que mostra a imagem atual, certo ate ai mas eu queria saber os valores que estão na chave anterior e posterior a essa chave tipo e exemplo abaixo:
<script>
var arr = new Array(4);
arr['teste1'] = teste1;
arr['teste2'] = teste2;
arr['teste3'] = teste3;
arr['teste4'] = teste4;
</script>

pronto eu especifico o elemento teste3

mas eu queria saber com faço para pegar o elemento anterior e posterior dele nesse caso eu queria pegar os três tipo.

especifico o teste3 ai eu irei receber o resultado teste2, teste3 e teste4 como eu posso fazer isso.

mas os valores que eu queria pegar não são os valores do array mas sim a chave dele.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Diego tudo bom?

Então eu posso estar errado, mas eu acho que não tem nenhuma maneira de referenciar por números no index se você usou uma string.

Se você usou uma string para identificar um array, então o seu array não tem mais o conceito de anterior ou de posterior concorda? Olha:

var arr=[]

arr["nome"]=Eduardo"

arr["idade]="23"

arr["profissao"]="Programador"

Qual vem antes de quem? Ninguém. Posso dar uma sugestão? Eu acho que cria arrays desnecessariamente, você poderia apenas criar o array das chaves assim:

<script type="text/javascript">

key=[]
key[0]="b091de3741c61db8b5aef54e82ad1dd6"
key[1]="a5bd6b49ed5c7adf0c7c13b5ac998cd"
key[2]="cd3326582f8f0f56f0b8ed5630aba894"
key[3]="30b46a0d77d143818bd99b36c60c300f"
key[4]="b04039daa65e1c17dc0b544671b53909"
key[5]="69ae5670041225e331318c6d623ba18c"
key[6]="91d5ff66686fdd2fb01b2aaa3de1e932"

function verificaChave(k){

for(prp in key)
   if(key[prp] == k.split("_")[1])
   return prp

return false
}

numero=verificaChave("mini_b04039daa65e1c17dc0b544675b53909")
if(numero)
alert(numero)
</script>
Percebe? a função verificaChave retorna o valor do array numerico, caso achar a chave. Dessa forma você poderia acessar o termo seguinte e anterior fazendo assim:
alert(key[numero+1]) // posterior
alert(key[numero-1])  // anterior

você pode criar uma função pra criar os minis é simples, e também teria que criar uma função para tratar o overflow do array pois caso o numero volte como 6, então 6+1 é 7 e o "key[7]" não existe.

Com o array key contendo só os valores das chaves, você pode criar uma função que adiciona facilmente o array com valores novos. A função verificaChave funcionaria com teoricamente infinitos valores de "key".

Abraços

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...