Cambiar el nombre de la clave del objeto en JavaScript

JavaScript no proporciona una función incorporada para cambiar el nombre de una clave de objeto. Así que veremos diferentes enfoques para lograr esto en este artículo.

Claves:
en JavaScript, los objetos se utilizan para almacenar la recopilación de varios datos. Es una colección de propiedades. Una propiedad es un par “clave:valor” . Las claves se conocen como ‘nombre de propiedad’ y se utilizan para identificar valores.

Método 1: Cambiar el nombre del objeto por simple asignación de variables. Después de la asignación de variable o variables, eliminaremos el par clave-valor antiguo e imprimiremos el nuevo par clave-valor.

Sintaxis:

 obj['New key'] = obj['old key'];

Nota: El cambio de nombre del objeto mediante una simple asignación de variable se puede aplicar en varios pares de clave y valor.

Ejemplo:

<!DOCTYPE html>
<html>
  
<head>
    <title>
        JavaScript: Object Rename Key
    </title>
</head>
  
<body>
    <center>
        <h1 style="color:green">GeeksforGeeks</h1>
        <button type="button" onclick="rename()">
            rename
        </button>
      
        <script>
            // JavaScript Program to 
            // illustrate renaming
  
            var capitals = [{ // creating an object 'capital' with
                "Burma": "Naypyitaw" // key "Burma" and value "Naypitaw"
            }];
            console.log(capitals);
  
            function rename() { // function to rename on button click
                capitals = capitals.map(function(obj) {
                    obj['Myanmar'] = obj['Burma']; // Assign new key
                    delete obj['Burma']; // Delete old key
                    return obj;
                });
                console.log(capitals);
            }
        </script>
      
</body>
  
</html>                   

Salida antes de cambiar el nombre:
Salida antes de cambiar el nombre

Salida después de cambiar el nombre:
Salida después de cambiar el nombre

Método 2:
en este enfoque, cambiaremos el nombre de la clave de objeto dada utilizando defineProperty() para manipular la propiedad del objeto.

defineProperty():
este método estático se usa para definir una nueva propiedad de un objeto o modificar una existente, y devuelve el objeto. Acepta 3 parámetros. Ellos son: Objeto a modificar, nombre de la clave , y el atributo de descripción respectivamente en ese orden.

Sintaxis:

 Object.defineProperty(obj, key, description) 

Ejemplo:

<!DOCTYPE html>
<html>
    <head>
        <title>
            JavaScript: Object Rename Key
        </title>
    </head> 
    <body> 
        <center>
            <h1 style="color:green">GeeksforGeeks</h1> 
        <button type = "button" onclick = "rename()">  
            rename
        </button>  
        <script>
       // JavaScript Program to
      // illustrate renaming key
  
          var  capitals= [{      // creating an object 'capital' with
          "Persia": "Tehran"    // key "Persia" and value "Tehran"
          }];
          console.log(capitals);      
          // function to rename old key
          function renameKey(obj, old_key, new_key) {   
          // check if old key = new key  
              if (old_key !== new_key) {                  
                 Object.defineProperty(obj, new_key, // modify old key
                                      // fetch description from object
                 Object.getOwnPropertyDescriptor(obj, old_key));
                 delete obj[old_key];                // delete old key
                 }
          }
         function rename(){
              capitals.forEach(obj => renameKey(obj, 'Persia', 'Iran'));
              console.log(capitals);
          }
       </script>    
    </body>
</html> 

Salida antes de cambiar el nombre:
salida antes

Salida después de cambiar el nombre:
Salida después

Publicación traducida automáticamente

Artículo escrito por vishodushaozae y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *