Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

86
Vistas
Cómo crear una matriz anidada de objetos usando el gancho de reacción useState

Tengo un problema para encontrar una solución sobre cómo llenar una matriz anidada vacía usando el enlace useState. Soy un principiante de reacción y podría perderme algo. En los pasos siguientes intentaré resumir el problema.

1.) Recibo este formato de datos como accesorios - {pregunta}:

 { category: "General Knowledge" correct_answer: "Arby's" difficulty: "easy" incorrect_answers: (3) ['McDonald's', 'Burger King', 'Wendy's'] question: "In which fast food chain can you order a Jamocha Shake?" type: "multiple" }
  1. El resultado de mi objetivo es crear un objeto con esta estructura:
 value: "Opel", isClicked: false, isCorrect: true, incorrect_answers: [ {isClicked: false, value: "Bugatti"}, {isClicked: false, value: "Bentley}, {etc...} ]
  1. Con este enfoque logro el resultado, pero me gustaría encontrar una forma de reacción más correcta.
 useEffect(() => { const obj = { value: question.correct_answer, isClicked: false, isCorrect: true, incorrect_answers: [] } question.incorrect_answers.map((item) => obj.incorrect_answers.push({ value: item, isClicked: false, }) ) setAnswers(obj) }, [])
  1. Mi objetivo es haber mencionado la estructura de datos formada en useState con el enfoque correcto sobre cómo acceder a arr anidado y llenarlo con objetos.

a) Uso useState para configurar el estado y su estructura de datos para las respuestas obj.

 const [answers, setAnswers] = useState({ value: question.correct_answer, isClicked: false, isCorrect: true, incorrect_answers: [ //I want multiple objects {value: '...', isClicked: ...}, // Would be nice if I was able to insert objects in this a) step. ] })

b) Quizás en useEffect o en alguna otra función quiero llenar la matriz incorect_answers con objetos.

 useEffect(() => { // c) Im accesing the answers state and filling incorect_answers with obj setAnswers(prevState => { return { ...prevState, incorrect_answers: [{ value: question.incorrect_answers.map((item) => item), isClicked: false, isCorrect: false }] } }) // d) my output: /* { value: "Opel", isClicked: false, isCorrect: true, incorrect_answers: [ {isClicked: false, value: [bugatti, bentley, bmw, citroen]}, ] } */ }, [])
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si está utilizando el map , no debe ignorar la respuesta del mismo, y no necesita push la matriz

 useEffect(() => { const obj = { value: question.correct_answer, isClicked: false, isCorrect: true, incorrect_answers: question.incorrect_answers.map(item => ({ value: item, isClicked: false })) } setAnswers(obj) }, [])

Se puede usar el mismo método al completar su estado por primera vez.

 const [answers, setAnswers] = useState({ value: question.correct_answer, isClicked: false, isCorrect: true, incorrect_answers: question.incorrect_answers.map(item => ({ value: item, isClicked: false })) })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda