Como renomear a chave do objeto com uma variável?

Marian Rick

Eu tenho um objeto:

blocks: [
  {
    type: 'animal',
    data: { text: 'Bark bark' }
  },
  {
    type: 'human',
    data: { text: 'Speak speak' }
  },
  ...
]

A data:nomenclatura não atende às minhas necessidades e gostaria de renomeá-la com o typevalor. Portanto, deve ser assim:

blocks: [
  {
    type: 'animal',
    animal: { text: 'Bark bark' }
  },
  {
    type: 'human',
    human: { text: 'Speak speak' }
  },
  ...
]

Como posso conseguir isso com muito pouco código de javascript? Minha solução funciona, mas parece ser estúpida (especialmente se você considerar mais de 10 tipos diferentes):

const blocks = [];
oldBlocks.map(block => {
    const {type, data} = block;
    blocks.push({
        type: type,
        animal: type === "animal" ? data : undefined,
        human: type === "human" ? data : undefined,
        ....
    });
});
fresco

Use colchetes para denotar uma expressão dentro de um objeto, permitindo que você avalie variáveis ​​como nomes de chave:

blocks.map(({type, data}) => ({ type, [type]: data }));

Exemplo:

let blocks = [
  {
    type: 'animal',
    data: { text: 'Bark bark' }
  },
  {
    type: 'human',
    data: { text: 'Speak speak' }
  }
],


result = blocks.map(({type, data}) => ({ type, [type]: data }));

console.log(result);

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Use a variável como chave do objeto

Sintaxe do bigode do Vue - é possível usar a variável como uma chave para o objeto?

Renomear arquivos em lote com o texto do arquivo como uma variável

Adicionar novo valor a um objeto existente com um conteúdo variável como chave?

Como renomear a chave do objeto em um array

Como renomear a chave do objeto em um array

acessando valores de objeto usando variável como uma chave

javascript usando uma variável para a chave do objeto

Como desestruturar um objeto com uma chave que contém um hífen em uma variável?

Como definir uma interface em texto digitado para um objeto profundo com sub-objetos com chave variável

chave do objeto variável (`$ {}`)

Como acessar um par chave / valor com uma variável?

Como acessar uma entrada do mapa com uma chave de string armazenada em uma variável no Go?

Como colocar uma variável no detector de chave do pygame?

Usando a chave do mapa sass como uma variável

Usando a chave do mapa sass como uma variável

como usar uma string atribuída a uma variável como uma chave de objeto

Renomear a chave do tipo de objeto datilografado

Como renomear uma coluna com um nome de variável "de maneira ordenada"

Como renomear uma variável específica de um quadro de dados com setNames ()?

MongoDB - Remover ($ unset) a chave aninhada do objeto quando a chave aninhada é uma variável

Usando uma variável como objeto com valores

Defina a variável como uma matriz de objeto com javascript

Como renomear uma variável que respeita o escopo do nome?

Como renomear uma variável em linhas selecionadas no código do Visual Studio?

Usando um objeto para renomear uma variável em R

Como extrair uma variável do objeto JSON no php?

Como recuperar uma variável do objeto msg?

Como criar uma chave dinâmica para ser adicionada a uma variável de objeto JavaScript

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo