Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

232
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!