1
resposta

Dúvida sobre resultados

Bom dia || Boa tarde || Boa noite !

Gostaria de sabe se conseguimos referenciar um atributo do objeto 1 "superHerois" dentro do objeto 2 "inimigos" sem ter um atributo de referência do objeto 1 dentro de objeto 2.

Obrigado.

const superHerois = [
    {
        nomeSuper: "Homem Aranha",
        identitadeSecreta: "Peter Paker",
        superPoder: "Tem, todos os poderes deu uma aranha?",
        forca: 6,
        inteligencia: 8,
        ataques: ["Teia","Soco","Chute","Acrobacia","Insulto"],
        inimigos: [
            {
                nome : "Duende Verde",
                odio : 9
            },
            {
                nome : "Escorpião",
                odio : 5
            },
            {
                nome : "Rhino",
                odio : 4
            },
            {
                nome : "Venom",
                odio : 10
            }
        ],
        posicao: 0,
        pula: function(posicao){
            this.posicao += posicao;
        }
    },
    {
        nomeSuper: "Batman",
        identitadeSecreta: "Bruce Wayne",
        superPoder: "Rico pra caralho",
        forca: 2,
        inteligencia: 10,
        ataques: ["Batarang","Soco","Chute","Pesquisar","Aterrorizar"],
        inimigos: [
            {
                nome : "Coringa",
                odio : 10
            },
            {
                nome : "Bane",
                odio : 8
            },
            {
                nome : "Espantalho",
                odio : 4
            },
            {
                nome : "Charada",
                odio : 6
            }
        ],
        posicao: 0,
        pula: function(posicao){
            this.posicao += posicao;
        }
    },
];

//const listaInimigos = [...superHerois[0].inimigos];

const listaInimigos2 = [];

for (let info in superHerois){
    console.log(superHerois[info].nomeSuper);
    console.log(superHerois[info].inimigos);    
    //listaInimigos2.push(...superHerois[info].inimigos);
    listaInimigos2.push(superHerois[info].nomeSuper, ...superHerois[info].inimigos);
}

console.table(listaInimigos2);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, tudo bem? Tem como sim, mas "debaixo dos panos" tudo vai se resumir à referências. Da forma que você fez, com vetores, eu não sei ao certo como fazer, mas veja esse exemplo:

const escorpiao = {
  nomeSuper: "Escorpião",
      identitadeSecreta: "Bla Bla ",
      superPoder: "Bla bla bla",
      forca: 6,
      inteligencia: 8,
      ataques: ["bla", "ble", "bli", "blo", "blu"],
      inimigos: [],
      posicao: 0,
      pula: function(posicao){
          this.posicao += posicao;
      }
}

const rhino = {
  nomeSuper: "Rhino",
      identitadeSecreta: "Bla Bla ",
      superPoder: "Bla bla bla",
      forca: 6,
      inteligencia: 8,
      ataques: ["bla", "ble", "bli", "blo", "blu"],
      inimigos: [],
      posicao: 0,
      pula: function(posicao){
          this.posicao += posicao;
      }
}

const venom = {
  nomeSuper: "Venom",
      identitadeSecreta: "Bla Bla ",
      superPoder: "Bla bla bla",
      forca: 6,
      inteligencia: 8,
      ataques: ["bla", "ble", "bli", "blo", "blu"],
      inimigos: [],
      posicao: 0,
      pula: function(posicao){
          this.posicao += posicao;
      }
}

const duendeVerde = {
  nomeSuper: "Duende Verde",
      identitadeSecreta: "Bla Bla ",
      superPoder: "Bla bla bla",
      forca: 6,
      inteligencia: 8,
      ataques: ["bla", "ble", "bli", "blo", "blu"],
      inimigos: [],
      posicao: 0,
      pula: function(posicao){
          this.posicao += posicao;
      }
}

const homemAranha = {
  nomeSuper: "Homem Aranha",
      identitadeSecreta: "Peter Paker",
      superPoder: "Tem, todos os poderes deu uma aranha?",
      forca: 6,
      inteligencia: 8,
      ataques: ["Teia","Soco","Chute","Acrobacia","Insulto"],
      inimigos: [duendeVerde, escorpiao, rhino, venom],
      posicao: 0,
      pula: function(posicao){
          this.posicao += posicao;
      }
}

duendeVerde.inteligencia = 5;

console.log(homemAranha.inimigos);

Perceba que após mudar o valor da inteligência do duende verde, esse valor também mudou como atributo dos inimigos do Homem aranha.

Bons estudos, espero ter ajudado!