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

181
Visualizações
¿Cómo cambiar el nombre de las claves de matriz multidimensional en javascript?

Estoy tratando de cambiar el nombre de las claves de esta matriz:

 'oldname': [ {"name": "cat", "category": "animal"} ,{"name": "dog", "category": "animal"} ,{"name": "pig", "category": "animal"} ], 'oldname1': [ {"name": "pikachu", "category": "pokemon"} ,{"name": "Arbok", "category": "pokemon"} ,{"name": "Eevee", "category": "pokemon"} ]

Probé con este código:

 const obj = {oldKey: Object.values(result)}; delete Object.assign(results, {newname: obj.oldKey})['oldname']; console.log(result);

pero lo estoy haciendo mal porque no necesitamos afectar el valor, debería ser algo como esto:

 'newname': [ {"name": "cat", "category": "animal"} ,{"name": "dog", "category": "animal"} ,{"name": "pig", "category": "animal"} ], 'newname1': [ {"name": "pikachu", "category": "pokemon"} ,{"name": "Arbok", "category": "pokemon"} ,{"name": "Eevee", "category": "pokemon"} ]

¿Hay alguna manera mejor de hacerlo usando javascript?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Si no desea crear una nueva variable/matriz, puede usar un bucle for..of y Object.entries() de la siguiente manera:

 const input = { 'oldname': [ {"name": "cat", "category": "animal"} ,{"name": "dog", "category": "animal"} ,{"name": "pig", "category": "animal"} ], 'oldname1': [ {"name": "pikachu", "category": "pokemon"} ,{"name": "Arbok", "category": "pokemon"} ,{"name": "Eevee", "category": "pokemon"} ] }, mapping = {'oldname':'newname','oldname1':'newname1'}; for(let [key,value] of Object.entries(input)) { input[mapping[key]] = value; delete input[key]; } console.log( input );

De lo contrario, puedes hacerlo de la siguiente manera:

 const input = { 'oldname': [ {"name": "cat", "category": "animal"} ,{"name": "dog", "category": "animal"} ,{"name": "pig", "category": "animal"} ], 'oldname1': [ {"name": "pikachu", "category": "pokemon"} ,{"name": "Arbok", "category": "pokemon"} ,{"name": "Eevee", "category": "pokemon"} ] }, mapping = {'oldname':'newname','oldname1':'newname1','oldname2':'newname2','oldnamen':'newnamen'}, output = Object.fromEntries( Object.entries(mapping).map(([oldname,newname]) => [newname, input[oldname]]) .filter(([,value]) => value) ); console.log( input );

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar Object.entries y Object.fromEntries para hacer eso

 const replaceKeys = (data, mapping) => Object.fromEntries( Object.entries(data).map(([k, v]) => [mapping[k] || k, v]) ) const data1 = { oldName1: 1, oldName2: 2, anotherKey: 3 } const mapping = { oldName1: 'newName1', oldName2: 'newName2' } console.log(replaceKeys(data1, mapping))

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