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

3.2K
Vistas
guarde el valor JSON en la carpeta provista en Javascript / node js

 let obj={ print:{ "2343192u4":{ id:"01", name:"linux file", location:"System config" }, "23438ufsdjh8":{ id:"02", name:"windows file", location:"System config" } }, hardware:{ "9058t05":{ no:"ct-01", refrence:"down-tPO-01" } }, stack:{ "345t5fdfve":{ option1:"prefer first lost", failure:"run backup" } }, backupdir:{ "cjksder8982w":{ files:"config file.json", execute:"run after failure" } } }; let Array=[{ filepath:"print" }, { filepath:"hardware" }, { filepath:"stack" }, { filepath:"backupdir" }, ]; Array.map((file)=>{ //console.log(file.filepath) Object.keys(obj).forEach((key)=>{ if(key===file.filepath){ // fs.writeFile(path.join(__dirname,file.filepath,"system.json"), JSON.stringify(Object.values(obj)[0], null, 4)) console.log("yes"); } }) });

Estoy tratando de obtener la clave del objeto obj JSON y compararlo con la ruta del archivo Array para poder insertar el valor en el archivo json creado

aquí usando fs estoy tratando de crear una carpeta que obtuve de la matriz

 fs.writeFile(path.join(__dirname,file.filepath,"system.json"));

mediante el cual creé la carpeta y el sistema de archivos.json en él y estoy tratando de comparar la clave del obj json y la ruta del archivo de la matriz y tratando de poner así

imprimir/sistema.json

 { "2343192u4":{ id:"01", name:"linux file", location:"System config" }, "23438ufsdjh8":{ id:"02", name:"windows file", location:"System config" } }

hardware/sistema.json

 { "9058t05":{ no:"ct-01", refrence:"down-tPO-01" } }

y así ...

pero el problema es cuando hago esto

 JSON.stringify(Object.values(obj)[0], null, 4)

Obtengo el mismo resultado en cada archivo.

imprimir/sistema.json

 { "2343192u4":{ id:"01", name:"linux file", location:"System config" }, "23438ufsdjh8":{ id:"02", name:"windows file", location:"System config" } }

hardware/sistema.json

 { "2343192u4":{ id:"01", name:"linux file", location:"System config" }, "23438ufsdjh8":{ id:"02", name:"windows file", location:"System config" } }

y así ...

aquí print hardware stack backupdir siempre se cambia y hay varios archivos más, ya que este es un nombre generado aleatoriamente por el sistema, por eso tengo que comparar y la clave del objeto y crear un directorio con este nombre

¿Cómo puedo empujarlos en diferentes carpetas diferentes con su respectivo valor?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Intenta cambiar

 fs.writeFileSync(path.join(__dirname,file.filepath,"system.json"), JSON.stringify(Object.values(obj)[0], null, 4))

(que solo mira el primer valor de propiedad en obj ) para

 fs.writeFileSync(path.join(__dirname,file.filepath,"system.json"), JSON.stringify(obj[key], null, 4))

que busca el objeto de propiedad en obj usando el valor key obtenido de la entrada de Array que se está procesando.

El uso de forEach en Object.keys(obj).forEach((key)=>{ evita que se detenga la búsqueda si se encuentra una ruta de archivo coincidente. Otra opción sería usar un bucle for of que salta si se ha fundar:

 Array.forEach((file)=>{ for( let key of Object.keys(obj)) { if(key===file.filepath) { fs.writeFileSync(path.join(__dirname,file.filepath,"system.json"), JSON.stringify(obj[key], null, 4)); break; } } });

Además: evite usar los nombres de constructores globales como Array como nombres de variables; es un error que está a punto de ocurrir :-)

over 4 years ago · Santiago Trujillo 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