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

122
Vistas
Agregar elementos JSON a una matriz de JSON en Javascript

Tengo una matriz JSON y JSON y quiero enviar todos los elementos de una matriz JSON a JSON con alguna condición.

Aquí está mi código:

 let json = { Jack: 10, Merry: 29, Charles: 37, Lahm: 0 } let jsonArray = [ { match: { Ashley: 46, }, }, ] for (const key in json) { if (json[key] !== 0) { jsonArray.push({ match: `{${key}: ${json[key]}}`, }) } }

Recibo la siguiente respuesta:

 [ { match: { Ashley: 46 } }, { match: '{Jack: 10}' }, { match: '{Merry: 29}' }, { match: '{Charles: 37}' } ]

El problema es que los elementos empujados tienen comillas simples que no quiero. ¿Hay alguna manera de empujar esos elementos sin comillas?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Tenga en cuenta que en realidad no está trabajando con JSON. JSON es una representación de cadena de objetos de JavaScript. Lo que tiene es simplemente un objeto JS simple y también una matriz de objetos.

Su problema es que simplemente está pasando una cadena a match , y no un objeto real, cuando usa literales de plantilla.

En su lugar, use la notación de corchetes para usar el valor de la variable key en su nuevo objeto de match , es decir:

 match: { [key]: json[key] }

Ver ejemplo de prueba de concepto:

 let myObject = { Jack: 10, Merry: 29, Charles: 37, Lahm: 0 } let myArrayOfObjects = [{ match: { Ashley: 46, }, }, ] for (const key in myObject) { if (myObject[key] !== 0) { myArrayOfObjects.push({ match: { [key]: myObject[key] } }) } } console.log(myArrayOfObjects);


Esta también es una buena oportunidad para explorar el uso de Object.entries , ya que en realidad devuelve la tupla a [key, value] :

 let myObject = { Jack: 10, Merry: 29, Charles: 37, Lahm: 0 } let myArrayOfObjects = [{ match: { Ashley: 46, }, }, ] Object.entries(myObject).forEach(([key, value]) => { if (value !== 0) { myArrayOfObjects.push({ match: { [key]: value } }) } }); console.log(myArrayOfObjects);

about 4 years ago · Juan Pablo Isaza Denunciar

0

El problema es que está enviando un objeto con una cadena de plantilla a la matriz. Necesitas cambiar un poco la sintaxis.

 for (const key in json) { if (json[key] !== 0) { jsonArray.push({ match: {[key]: json[key]} }) } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Debe acceder a los pares clave/valor del objeto JS y no agregar una cadena a la matriz. Una vez que se haya completado para todas las propiedades, si es necesario, puede convertir la matriz en JSON.

 const obj = { Jack: 10, Merry: 29, Charles: 37, Lahm: 0 }; const arr = [ { match: { Ashley: 46 } }]; for (const key in obj) { arr.push({ match: { [key]: obj[key] } }); } console.log(arr); console.log(JSON.stringify(arr));

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