Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

116
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda