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

224
Vistas
mapa en la clave de nivel inferior de un objeto anidado

Había publicado esta pregunta anteriormente, pero alguien eliminó ¿Cómo puedo acceder y procesar objetos anidados, matrices o JSON? como posible respuesta. Esto no me está ayudando ya que a) La clave 'fecha' se distribuye en varios nombres, b) Los objetos se componen de matrices y objetos y c) La profundidad a la que está presente la clave 'fecha' puede cambiar.

Por lo tanto, publique la pregunta nuevamente.

Tengo un objeto JS como se muestra a continuación.

 const bb = { Harry: { details: [ { cat: "Life", values: [ { date: "2021-08-02", level: 77.6, }, { date: "2021-08-03", level: 79.1, }, ], }, ], }, Barry: { details: [ { cat: "Logic", values: [ { date: "2021-08-02", level: 77.6, }, { date: "2021-08-03", level: 79.1, }, ], }, ], }, };

También tengo una variable definida para analizar las fechas const dateParse = d3.timeParse("%Y-%m-%d")

Quiero analizar todas las fechas en el objeto. Dado que la 'fecha' está unos niveles por debajo en el objeto, no puedo resolver esto. ¿Cómo lo hago?

La salida esperada es

 const bb = { Harry: { details: [ { cat: "Life", values: [ { date: Mon Aug 02 2021 00:00:00 GMT+0530 (India Standard Time), level: 77.6, }, { date: Tue Aug 03 2021 00:00:00 GMT+0530 (India Standard Time), level: 79.1, }, ], }, ], }, Barry: { details: [ { cat: "Logic", values: [ { date: Mon Aug 02 2021 00:00:00 GMT+0530 (India Standard Time), level: 77.6, }, { date: Tue Aug 03 2021 00:00:00 GMT+0530 (India Standard Time), level: 79.1, }, ], }, ], }, };
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Solo tiene que recorrer los objetos, seleccionar el nodo de fecha y ejecutar

(new Date(datestring)).toString()

Esto generará la fecha como se especifica en su salida.

 const bb = { Harry: { details: [{cat: "Life",values: [{date: "2021-08-02",level: 77.6},{date: "2021-08-03",level: 79.1}]}]},Barry: {details: [{cat: "Logic",values: [{date: "2021-08-02",level: 77.6},{date: "2021-08-03",level: 79.1}]}]}}; Object.values(bb).forEach((value) => { value.details.forEach((detail) => { detail.values.forEach((value) => { value.date = (new Date(value.date)).toString(); }) }) }); console.log(bb);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea analizar todas las claves de date anidadas, puede hacerlo recursivamente utilizando las siguientes funciones

 const bb = { Harry: { details: [{cat: "Life",values: [{date: "2021-08-02",level: 77.6},{date: "2021-08-03",level: 79.1}]}]},Barry: {details: [{cat: "Logic",values: [{date: "2021-08-02",level: 77.6},{date: "2021-08-03",level: 79.1}]}]}}; function traverseArray(inputArray) { for (const arrayValue of inputArray) { traverseObject(arrayValue); } } function traverseObject(inputObject) { for (const key in inputObject) { const value = inputObject[key]; const valueType = typeof(value); if (valueType == "object") { traverseObject(value); } else if (valueType == "array") { traverseArray(value); } else if (key == "date") { // since I want to parse only date keys inputObject[key] = 'd3.timeParse("%Y-%m-%d") - Parse date here'; } } } traverseObject(bb); console.log(bb);
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