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

140
Visualizações
Destrucción de objeto anidado es6

¿como estas? Me gustaría eliminar una propiedad ("isCorrect") de un objeto anidado.

Lista original

 id: 1, questionText: 'This is a test question for tests', answerOptions: [ { answerText: 'A', isCorrect: true }, { answerText: 'B', isCorrect: false } ], difficulty: 1 }, { id: 2, questionText: 'This is another test question for tests', answerOptions: [ { answerText: 'A', isCorrect: false }, { answerText: 'B', isCorrect: true } ], difficulty: 2 }

Resultado Esperado

 id: 1, questionText: 'This is a test question for tests', answerOptions: [ { answerText: 'A' }, { answerText: 'B' } ], difficulty: 1 }, { id: 2, questionText: 'This is another test question for tests', answerOptions: [ { answerText: 'A' }, { answerText: 'B' } ], difficulty: 2 }

Logré usar el código de eliminación a continuación, pero ese no es el mejor enfoque

 const cleanResponses = (questions: Question[]): Question[] => { questions.forEach(question => { question.answerOptions.forEach((answer) => { delete answer.isCorrect }); }) return questions; }

Intenté la siguiente línea pero no tuve éxito :(

const { opciones de respuesta: [{ isCorrect }], ... resto } = pregunta

Gracias

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

0

Usando Array#map :

 const arr = [ { id: 1, questionText: 'This is a test question for tests', answerOptions: [ { answerText: 'A', isCorrect: true }, { answerText: 'B', isCorrect: false } ], difficulty: 1 }, { id: 2, questionText: 'This is another test question for tests', answerOptions: [ { answerText: 'A', isCorrect: false }, { answerText: 'B', isCorrect: true } ], difficulty: 2 } ]; const res = arr.map(({ answerOptions = [], ...elem }) => ({ ...elem, answerOptions: answerOptions.map(({ isCorrect, ...answer }) => answer) })); console.log(res);

about 4 years ago · Juan Pablo Isaza Relatório

0

Depende si desea mutar la matriz existente o crear una nueva matriz. Si es el primero, su código está bien (proporcioné una versión actualizada a continuación). Si es lo último, Majed Badawi ha proporcionado una buena respuesta usando map . De cualquier manera, estará iterando sobre los objetos en la matriz de datos y los objetos en la matriz de answerOptions de respuesta para obtener el resultado que necesita.

 const arr=[{id:1,questionText:"This is a test question for tests",answerOptions:[{answerText:"A",isCorrect:!0},{answerText:"B",isCorrect:!1}],difficulty:1},{id:2,questionText:"This is another test question for tests",answerOptions:[{answerText:"A",isCorrect:!1},{answerText:"B",isCorrect:!0}],difficulty:2}]; for (let { answerOptions } of arr) { for (let obj of answerOptions) { delete obj.isCorrect; } } console.log(arr);

about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí hay otra forma (más larga) de lograr el resultado deseado. Trabajando de afuera hacia adentro, primero mapeamos todos los objetos en la test de matriz. Uso el operador de descanso para separar la matriz de objetos answerOptions de las otras propiedades de la pregunta. A continuación, debemos answerOptions la matriz de opciones de respuesta. Con el operador rest, cree un nuevo objeto answerOption que no contenga la propiedad isCorrect . Finalmente, lo volvemos a juntar todo. Devuelve un objeto que contiene las propiedades de pregunta separadas y los nuevos objetos answerOptions sin isCorrect .

 const test = [ { id: 1, questionText: "This is a test question for tests", answerOptions: [ { answerText: "A", isCorrect: true }, { answerText: "B", isCorrect: false } ], difficulty: 1 }, { id: 2, questionText: "This is another test question for tests", answerOptions: [ { answerText: "A", isCorrect: false }, { answerText: "B", isCorrect: true } ], difficulty: 2 } ]; const cleanResponses = (questions) => { return questions.map(({ answerOptions, ...rest }) => { const newAnswerOptions = answerOptions.map((answerOption) => { const { isCorrect, ...newAnswerOption } = answerOption; return newAnswerOption; }); return { answerOptions: { ...newAnswerOptions }, ...rest }; }); }; console.log(cleanResponses(test))

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