Comprobar si un objeto está congelado profundamente

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a comprobar si un objeto está congelado profundamente en JavaScript. El laboratorio nos guiará a través de una función recursiva que utiliza Object.isFrozen() para determinar si un objeto está congelado y Object.keys() con Array.prototype.every() para comprobar todas las claves para el congelamiento profundo. Al final de este laboratorio, tendremos una mejor comprensión de cómo determinar el estado de congelamiento profundo de un objeto en JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28416{{"Comprobar si un objeto está congelado profundamente"}} javascript/data_types -.-> lab-28416{{"Comprobar si un objeto está congelado profundamente"}} javascript/arith_ops -.-> lab-28416{{"Comprobar si un objeto está congelado profundamente"}} javascript/comp_ops -.-> lab-28416{{"Comprobar si un objeto está congelado profundamente"}} javascript/array_methods -.-> lab-28416{{"Comprobar si un objeto está congelado profundamente"}} javascript/destr_assign -.-> lab-28416{{"Comprobar si un objeto está congelado profundamente"}} end

Cómo comprobar si un objeto está congelado profundamente

Para comprobar si un objeto está congelado profundamente, sigue los siguientes pasos en JavaScript:

  1. Abre la Terminal/SSH y escribe node para comenzar a practicar la codificación.
  2. Utiliza la recursividad para comprobar si todas las propiedades del objeto están congeladas profundamente.
  3. Utiliza Object.isFrozen() en el objeto dado para comprobar si está congelado superficialmente.
  4. Utiliza Object.keys() para obtener todas las propiedades del objeto y Array.prototype.every() para comprobar que todas las claves son objetos congelados profundamente o valores no objeto.

A continuación, se muestra un fragmento de código de ejemplo para comprobar si un objeto está congelado profundamente:

const isDeepFrozen = (obj) =>
  Object.isFrozen(obj) &&
  Object.keys(obj).every(
    (prop) => typeof obj[prop] !== "object" || isDeepFrozen(obj[prop])
  );

Puedes utilizar la función isDeepFrozen para comprobar si un objeto está congelado profundamente de la siguiente manera:

const x = Object.freeze({ a: 1 });
const y = Object.freeze({ b: { c: 2 } });
isDeepFrozen(x); // true
isDeepFrozen(y); // false

Resumen

¡Felicidades! Has completado el laboratorio de Comprobar si un objeto está congelado profundamente. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.