Ir para conteúdo
marsolim

Como inserir valores com índices em um for(... in...):

Recommended Posts

Olá a todos. Venho com um probleminha para o qual não encontrei resposta. Talvez, eu não tenha sabido os termos certos para pesquisar. É o seguinte... estou tentando incluir, em uma lista array, índices com valores montados em uma variável a partir de outra array e não estou a conseguir. Atualmente, meu código é o seguinte...

var ids = {
    "joby": "track 01",
    "dobby": "track 02",
    "medz": "track 03",
    "decks": "track 04,
    "tecks": "track 05",
    "assud": "track 06",
    "mand": "track 07",
    "daly": "track 08",
};

var lstIds = [];

for(i in ids){
        lstIds[i] =  {
        dock: ids[i],
        adb: 0,
        mdc: 0,
        bah: 0,
        tek: 0,
        dep: 0,
        tos: 0
    };
}

 

Até aqui ok. É o que tenho no momento. O que estou querendo fazer é colocar, no lugar das linhas de adb: 0 até dep: 0, outra array que criei com esses índices, porque pode ser que eu precise adicionar mais valores e eu quero fazer isso na array nova porque vou usar ela em vários lugares e eu teria que alterar em todos se não fizer essa modificação. Fazendo ela, eu alteraria apenas nela mesmo. Então, agora, com a array nova, seria algo assim:

var ids = {
    "joby": "track 01",
    "dobby": "track 01",
    "medz": "track 01",
    "decks": "track 01",
    "tecks": "track 01",
    "assud": "track 01",
    "mand": "track 01",
    "daly": "track 01",
};

var juds = ["adb", "mdc", "bah", "tek", "dep"]; //lista nova com os valores

var lstIds = [];

for(i in ids){
        lstIds[i] =  {
        dock: ids[i],
        adb: 0,
        mdc: 0,
        bah: 0,
        tek: 0,
        dep: 0,
        tos: 0
    };
}

 

O que eu preciso é incluir os valores de juds em lstIds. Da forma que está, não consigo fazer um for dentro do outro for para pegar esses dados e não consigo, também, criar ele fora e inserir com variável, tipo:

var fJuds = "";

for(i in juds){
    fJuds += juds[i] + ": 0,";
}

for(i in ids){
        lstIds[i] =  {
        dock: ids[i],
        fJuds // Aqui eu incluiria a variável no lugar das linhas...
        tos: 0
    };
}

 

Bem, o que eu queria saber mesmo é como eu poderia inserir uma variável no meio duma lista desse tipo... se é possível.

 

Agradeço pela atenção...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
No JavaScript, diferente de outras linguages, os arrays são estruturas de dados que usam índices numéricos para acessar seus elementos.

Para conseguir o que desejas, vais precisar continuar a usar object notation

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Willian Simione
      Boa Noite, alguem poderia me ajudar em uma situação, estou tetnando gravar os dados da tela abaixo, porem nao estou conseguindo montar o jeito certo pra ele gravar todos os dados de uma vez

    • Por marcossantana10
      Faço uma consulta no banco para buscar uma lista de horários, depois preciso comparar esse resultado com um array só de horários que eu possuo. Utilizei o código abaixo pra isso:
       
      //dados do array $h_indisponiveis separados por _ (ilustrativo) 13:20:00_13:40:00_14:00:00_14:20:00_18:40:00_19:00:00_21:20:00 $sql = "MINHA CONSULTA"; $sql=$pdo->query($sql); if ($sql->rowCount() > 0) { $result = array('error'=>false, 'data' => array()); foreach ($sql as $row) { $horario['id'] = $row['id']; $horario['hora'] = $row['hora']; $horario['tempo'] = $row['tempo']; for($i=0; $i<$sizeArray; $i++){ if ($h_indisponiveis[$i] == $row['hora']){ $horario['disponivel'] = 'n'; } else { $horario['disponivel'] = 's'; } } array_push($result['data'], $horario); } echo json_encode($result); }  
      O problema é que ele não está retornando todas as correspondências entre o objeto da consulta e o array, apenas a última. Ao invés de marcar 6 resultados como "disponivel = n", ele só marca um. Como posso corrigir
       

    • Por Diego-SLP
      Boa tarde,
       
      Preciso atualizar um registro o qual já possui um valor na coluna QUANTIDADE, agora atualizarei a coluna VALOR UNITARIO e gostaria que fosse feita a multiplicação QUANTIDADE * VALOR UNITARIO.
       
      Como consigo fazer essa consulta do ID, pegar a QUANTIDADE e multiplicar pelo VALOR UNITARIO de cada linha ? vou atualizar lotes, e nao só um registro.
       
      Imagino que com o FOR, mas não consigo montar sua estrutura de repetição.
    • Por Millena Oliveira
      Oiii gente, boa noite. Estou estudando ainda e me deram um desafio para desenvolver um programa que imprimisse na tela somente os números primos segundo o valor que o usuário colocasse na execução. Utilizei o readLine para isso. Usei um objeto para que repetisse a execução e salvei todos os números numa array. O problema é, quando faço o teste colocando um número qualquer, retorna uma array vazia. Poderia me dar uma ajuda? Segue abaixo todo o código.
      Obrigada :)
       
      var readline = require("readline"); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); function desafioPrimos() { var primos = []; rl.question("Digite um número: ", function (num) { console.log(primos); numero = parseInt(num); numerosPrimos: for (var x = 2; x <= num; x++) { for (var y = 2; y < x; y++) { if (x % y === 0) continue numerosPrimos; }; primos.push(x); rl.close(); }; }); }; desafioPrimos();  
    • Por lordzyrium
      Seguinte. Estou tendo dificuldades em criar um array a partir de outro array. E o que preciso é que a saída seja exatamente assim:
      $dados_out = array(     'nome' => 'Nome do Aluno',     'diciplina_notas' => array(         array('PORTUGUÊS', '7ano' => '7,5', '8ano' => '7,0', '9ano' => '8,0'),         array('REDAÇÃO', '7ano' => '8,5', '8ano' => '9,0', '9ano' => '9,0'),         array('HISTÓRIA', '7ano' => '9,5', '8ano' => '8,5', '9ano' => '8,5'),         array('GEOGRAFICA', '7ano' => '7,0', '8ano' => '8,5', '9ano' => '8,0'),         array('QUIMICA', '7ano' => '--', '8ano' => '--', '9ano' => '8,5'),     ) ); A partir deste código:
       
      $dados = array( array( 'nome'=> 'Nome do Aluno', 'etapa'=> '7º ANO', 'pos' => 7, 'not_dados'=> array( array('PORTUGUES', '7,5', '120H', 'AP'), array('REDAÇÃO', '8,5', '40H', 'AP'), array('HISTÓRIA', '9,0', '80H', 'AP'), array('GEOGRAFIA', '7,0', '80H', 'AP') ) ), array( 'nome'=> 'Nome do Aluno', 'etapa'=> '8º ANO', 'pos' => 8, 'not_dados'=> array( array('PORTUGUES', '7,0', '120H', 'AP'), array('HISTÓRIA', '8,5', '80H', 'AP'), array('REDAÇÃO', '9,0', '40H', 'AP'), array('GEOGRAFIA', '8,5', '80H', 'AP') ) ), array( 'nome'=> 'Nome do Aluno', 'etapa'=> '9º ANO', 'pos' => 9, 'not_dados'=> array( array('PORTUGUES', '8,0', '120H', 'AP'), array('HISTÓRIA', '8,5', '80H', 'AP'), array('REDAÇÃO', '9,0', '40H', 'AP'), array('GEOGRAFIA', '8,0', '80H', 'AP'), array('QUIMICA', '8,5', '80H', 'AP') ) ), );  
       
      OBS: terá todas as etapas e as diciplinas não podem ser repetidas.
      Quem puder ajudar desde já agradeço.
       
×

Informação importante

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