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

197
Visualizações
¿Cómo asigno valores a las claves cuando fusiono 2 objetos con .map()?

Estoy usando .map() para recorrer un objeto y colocar algunos valores en un segundo objeto.

Estoy haciendo esto como tal:

 function convertGraphItems(name, data) { return ({ name, data, type: 'bar', stack: true }); } var generatedArr = [...dataByAccountName.entries()].map(convertGraphItems);

Sin embargo, parece que no puedo asignar 'nombre' y 'datos' a sus respectivas claves.

He intentado return ({ name: name, data: data, type: 'bar', stack: true }); pero esto no logra lo que quiero.

Mi resultado deseado debería verse así:

 [ { "name": "Savings", "data": [ 5474.18, 114031.26, 127890.72 ], "type": "bar", "stack": true } ]

Pero mi resultado actual es:

 [ { "name": [ "Savings", [ 5474.18, 114031.26, 127890.72 ] ], "data": 0, "type": "bar", "stack": true } ]

¿Alguien sabría cómo podría asignar data y name a sus respectivas claves?

EDITAR: la matriz de origen se parece a:

 [ { "key": "Savings", "value": [ 5474.18, 114031.26, 127890.72 ] }, ]
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Los primeros dos argumentos pasados a la devolución de llamada Array.prototype.map() son

  • element

    El elemento actual que se procesa en la matriz.

  • index

    El índice del elemento actual que se está procesando en la matriz.

Parece poco probable que desee que data sean el índice.

 const dataByAccountName = [{"key":"Savings","value":[5474.18,114031.26,127890.72]}] const generatedArr = dataByAccountName.map(({ key: name, value: data }) => ({ name, data, type: "bar", stack: true })) console.log(generatedArr)
 .as-console-wrapper { max-height: 100% !important; }


Si está utilizando otra cosa que produce entradas (como un mapa), así es como lo mapearía

 const dataByAccountName = new Map() dataByAccountName.set("Savings", [ 5474.18, 114031.26, 127890.72 ]) const generatedArr = Array.from(dataByAccountName, ([ name, data ]) => ({ name, data, type: "bar", stack: true })) console.log(generatedArr)
 .as-console-wrapper { max-height: 100% !important; }

He usado Array.from() desde que en mi opinión se ve mejor que [...map.entries()].map() y logra exactamente lo mismo.

Tenga en cuenta que el primer (y único) argumento pasado a la devolución de llamada de asignación es una matriz desestructurada en lugar de dos argumentos separados.

about 4 years ago · Juan Pablo Isaza Relatório

0

Está pasando la función convertGraphItems al map y espera el name como key y los data como value , pero este no es el caso aquí.

En el map el primer argumento es el valor y el segundo es el index . Debe hacer que convertGraphItems sea compatible para que pueda pasar el valor externamente como:

 [...dataByAccountName.entries()].map(function ([_, { key, value }]) { return convertGraphItems(key, value); }); 

 const dataByAccountName = [ { key: "Savings", value: [5474.18, 114031.26, 127890.72], }, ]; function convertGraphItems(name, data) { return { name, data, type: "bar", stack: true }; } var generatedArr = [...dataByAccountName.entries()].map(function ([, v]) { const { key, value } = v; return convertGraphItems(key, value); }); console.log(generatedArr);

about 4 years ago · Juan Pablo Isaza Relatório

0

Si ya tiene la matriz de origen disponible como la incluyó en la pregunta, no necesita una función separada para ella.

 const sources = [{ "key": "Savings", "value": [5474.18, 114031.26, 127890.72] }] const parsedData = sources.map(({key, value}) => ({ name: key, data: value, type: 'bar', stack: true })); console.log(parsedData)

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