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

138
Vistas
Tener un problema al convertir un objeto en una matriz filtrada

Me gustaría filtrar y reestructurar algunos datos específicos, pero tengo algunos problemas para que produzcan la estructura adecuada.

Tengo esta respuesta de datos en esta estructura....

 var response = { badProperty1: "bad property text" goodProperty1: "abc" goodProperty2: "bcd" goodProperty3: "cde" goodProperty4: "def" goodProperty5: "efg" badProperty2: "fgh" };

Me gustaría convertir mi objeto de respuesta en una matriz como esta estructura exactamente...

 var newFilteredStructuredArray = [ {goodProperty1: 'abc'}, {goodProperty2: 'bcd'}, {goodProperty3: 'cde'}, {goodProperty4: 'def'}, {goodProperty5: 'fgh'} ];

Sin embargo, me gustaría filtrar las malas propiedades antes de obtener mi nueva matriz. Me gustaría que mi matriz solo incluya estos nombres de propiedad específicos y filtre todo lo demás con lo que comencé.

 var possiblePropertyNames = ['goodProperty1', 'goodProperty2', 'goodProperty3', 'goodProperty4', 'goodProperty5'];
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

una implementación que usa filter y map en las entradas de objeto de respuesta. En la etapa de filtro, filtro solo si está disponible en possiblePropertyNames . Luego, en la etapa del mapa, devuelvo la matriz en el formato que necesita

 var possiblePropertyNames = ['goodProperty1', 'goodProperty2', 'goodProperty3', 'goodProperty4', 'goodProperty5']; var response = {badProperty1: "bad property text",goodProperty1: "abc",goodProperty2: "bcd",goodProperty3: "cde",goodProperty4: "def",goodProperty5: "efg",badProperty2: "fgh"} var newFilteredStructuredArray = Object.entries(response).filter(([k,v]) => possiblePropertyNames.includes(k)).map(([k,v]) => ({[k]:v})) console.log(newFilteredStructuredArray)

sin es6

 var possiblePropertyNames = ['goodProperty1', 'goodProperty2', 'goodProperty3', 'goodProperty4', 'goodProperty5']; var response = {badProperty1: "bad property text",goodProperty1: "abc",goodProperty2: "bcd",goodProperty3: "cde",goodProperty4: "def",goodProperty5: "efg",badProperty2: "fgh"} var newFilteredStructuredArray = Object.keys(response) .filter(function(a){ return possiblePropertyNames.includes(a) }) .map(function(b){ return {[b]:response[b]} }) console.log(newFilteredStructuredArray)

ACTUALIZAR una mejor respuesta con solo un map en la matriz de possiblePropertyNames como lo señaló Andreas en los comentarios

 var possiblePropertyNames = ['goodProperty1', 'goodProperty2', 'goodProperty3', 'goodProperty4', 'goodProperty5']; var response = {badProperty1: "bad property text",goodProperty1: "abc",goodProperty2: "bcd",goodProperty3: "cde",goodProperty4: "def",goodProperty5: "efg",badProperty2: "fgh"} var newFilteredStructuredArray = possiblePropertyNames.map(prop => ({[prop]:response[prop]})) console.log(newFilteredStructuredArray)

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