"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo establecer dinámicamente las claves en los objetos JavaScript?

¿Cómo establecer dinámicamente las claves en los objetos JavaScript?

Publicado el 2025-03-01
Navegar:764

How to Dynamically Set Keys in JavaScript Objects?

cómo crear una clave dinámica para una variable de objeto JavaScript

al intentar crear una clave dinámica para un objeto JavaScript, usando esta sintaxis

jsObj['key'   i] = 'example'   1;
no funcionará. El enfoque correcto emplea soportes cuadrados:
var key = 'DYNAMIC_KEY',
    obj = {
        [key]: 'ES6!'
    };

en Javascript, las matrices son un tipo especializado de objeto, con la distinción que mantienen una propiedad de longitud que refleja la cuenta de propiedades numéricas (indicados) más uno. Este comportamiento especial no es imitado por los objetos estándar, pero el operador de soporte cuadrado funciona de manera idéntica en ambos tipos.

para configurar una propiedad con una clave numérica en una instancia de matriz, la propiedad de longitud se actualizará automáticamente para reflejar la clave numérica más grande. Sin embargo, para un objeto simple, no se produce dicha actualización.

es importante tener en cuenta que serializar una instancia de matriz a JSON solo incluye las propiedades de nombre numéricamente, excluyendo cualquier otra.

en ES6, puede usar nombres de propiedades calculadas para una sintaxis más concisa:

[&] var key = '' obj = { [Clave]: 'Es6!' };
            
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3