Aplane los objetos de JavaScript en un objeto de profundidad única

Dado un objeto de JavaScript anidado, la tarea es aplanar el objeto y extraer todos los valores a una sola profundidad. Si los valores ya están en una sola profundidad, devuelve el resultado sin cambios.

Método typeof(): El método typeof() se utiliza en el script para comprobar el tipo de variable de JavaScript.

Sintaxis:

typeof(variable)

Parámetros: este método acepta un parámetro como se mencionó anteriormente y se describe a continuación:

  • Variable: La variable de entrada.

Valor devuelto: este método devuelve una string que contiene el tipo de la variable pasada.

Acercarse:

  1. Hacemos una función llamada aplanar objeto que toma la entrada de un objeto y devuelve un objeto.
  2. Recorra el objeto y verifique el tipo de la propiedad actual:
    • Si es de tipo Object y no es un Array , vuelva a llamar recursivamente a la función.
    • De lo contrario, almacene el valor en el resultado.
  3. Devolver el objeto.

Ejemplo:

Javascript

// Declare an object
let ob = {
    Company: "GeeksforGeeks",
    Address: "Noida",
    contact: +91-999999999,
    mentor: {
        HTML: "GFG",
        CSS: "GFG",
        JavaScript: "GFG"
    }
};
 
// Declare a flatten function that takes
// object as parameter and returns the
// flatten object
const flattenObj = (ob) => {
 
    // The object which contains the
    // final result
    let result = {};
 
    // loop through the object "ob"
    for (const i in ob) {
 
        // We check the type of the i using
        // typeof() function and recursively
        // call the function again
        if ((typeof ob[i]) === 'object' && !Array.isArray(ob[i])) {
            const temp = flattenObj(ob[i]);
            for (const j in temp) {
 
                // Store temp in result
                result[i + '.' + j] = temp[j];
            }
        }
 
        // Else store ob[i] in result directly
        else {
            result[i] = ob[i];
        }
    }
    return result;
};
 
console.log(flattenObj(ob));

Producción:

{
  Company: 'GeeksforGeeks',
  Address: 'Noida',
  contact: -999999908,
  'mentor.HTML': 'GFG',
  'mentor.CSS': 'GFG',
  'mentor.JavaScript': 'GFG'
}

Publicación traducida automáticamente

Artículo escrito por shubhamx 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 *