Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Acessar propriedade array dentro de um objeto

Basicamente o que eu estou querendo fazer é guardar as perguntas de um quiz dentro de um objeto e definir o primeiro item da propriedade alternativas como a resposta correta. Porem a propriedade alternativas é um array.

Como eu acesso esse array atraves de uma outra propriedade dentro do mesmo objeto?

var allQuestions = [
    {
      question: "Qual é a capital do Brasil?",
      alternativas: ['Brasilia', 'Acapulco', 'Buenos Aires'],
      correta: alternativas[0]
    }
  ];

Neste caso o console está mostrando que alternativas is not defined.

5 respostas

Acesse uma posição do array primeiro, e aí a propriedade. Exemplo:

console.log(allQuestions[0].alternativas);

E, claro, você pode fazer um for no allQuestions tbm se forem várias questões pra mostrar.

Ah não, acho que entendi seu problema, é na correta né? Infelizmente não dá pra fazer isso direto. Vai precisar referenciar o caminho completo. Exemplo:

var allQuestions = [
    {
      question: "Qual é a capital do Brasil?",
      alternativas: ['Brasilia', 'Acapulco', 'Buenos Aires'],
      correta: allQuestions[0].alternativas[0]
    }
  ];

Obrigado Sergio. Mesmo referenciando o caminho, ele nao reconhece a chave alternativas quanto tento acessar pelo correta

Cannot read property '0' of undefined

solução!

Tem razão! Testei aqui no console e o objeto já estava definido por isso não peguei o erro. Vai precisar fazer em duas etapas então:

var allQuestions = [
    {
      question: "Qual é a capital do Brasil?",
      alternativas: ['Brasilia', 'Acapulco', 'Buenos Aires']
    }
  ];

allQuestions[0].correta = allQuestions[0].alternativas[0];

Fica meio feio né, mas não tem muito jeito...

Valeu Sergio! Realmente nao ta muito legivel mas como eh apenas para estudos, depois eu penso numa forma de refatorar o código.