Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
Iterar sobre un objeto de objetos e insertar un par de valores clave en cada objeto

Estoy tratando de iterar sobre un objeto que tiene muchos objetos más pequeños dentro. Quiero insertar condicionalmente un par de valores clave en cada uno de esos objetos más pequeños, por ejemplo:

 const answers = { "question1": { answer: "Poor", metric: "focus" }, "question2": { answer: {agree: "yes", duration: "10"} metric: "exercise" } }

Entonces, digamos que la respuesta en la pregunta 1 puede ser mala, buena o excelente, siendo mala una puntuación de 1, buena una puntuación de 5 y excelente una puntuación de 10. Dependiendo de la respuesta en la pregunta 1, me gustaría agregar una clave. par de valores como puntaje: 1 en el objeto question1

Luego, para la pregunta 2, observamos la duración y una duración de 10 nos da una puntuación de 10, por lo que insertamos el par de valores clave como puntuación: 10

Entonces, al final, quiero devolver un objeto que se parezca a:

 newAnswers = { "question1": { answer: "Poor", metric: "focus", score: 1 }, "question2": { answer: {agree: "yes", duration: "10"} metric: "exercise", score: 10 } }

En este ejemplo, muestro solo dos preguntas para simplificar, pero en realidad podrían ser muchas, y la misma lógica se aplicará a todas las demás preguntas.

Gracias por adelantado

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Básicamente, lo que necesitas es una lógica de bucle.

Algo como esto ayudará.

Lógica

  • Bucle a través de las entradas en el objeto
  • Verifica el tipo de clave de answer en cada objeto
  • Si el tipo es una cadena, haga un mapeo entre las opciones "poor", "good", "excellent" .
  • Si es su objeto comprobar la vigencia de la duration y asignarla a la partitura.

violín de trabajo

 const answers = { "question1": { answer: "Poor", metric: "focus" }, "question2": { answer: {agree: "yes", duration: "10"}, metric: "exercise" } }; Object.entries(answers).forEach((item) => { const answer = item[1].answer; switch (typeof answer) { case "string": console.log(answer); const answerOptions = ["poor", "good", "excellent"]; const scoreOptions = [1, 5, 10]; const index = answerOptions.indexOf(answer.toLowerCase()); if(index !== -1) { item[1].score = scoreOptions[index]; } break; case "object": if (answer.duration && !isNaN(answer.duration)) { item[1].score = +answer.duration; } break; } }); console.log(answers)

about 4 years ago · Juan Pablo Isaza Relatório

0

Si entiendo su pregunta correctamente, la pregunta es cómo insertar un nuevo atributo para cada objeto JSON. Si es el caso, puede hacer lo siguiente.

 answers["question1"]["score"] = 1;

Descuidando la verificación condicional de su lógica (es decir, la declaración condicional), la iteración podría ser:

 $.each(answers, (q) => { q["score"] = x; }

Cómo probarlo con Google Chrome Console

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda