• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

183
Vistas
Construya una clase para crear un objeto con clave variable

Quiero crear un objeto con clave variable con la ayuda de la instancia de clase. Lo he intentado con el siguiente código.

 class ACL { constructor(key){ this[key] = { read: false, write: false, delete: false } } setRoleReadAccess(key, value){ [key] = { read: value, } } setRoleWriteAccess(key, value){ [key] = { write: value, } } setRoleDeleteAccess(value){ [key] = { delete: value, } } } const userACL = new ACL("1234"); userACL.setRoleReadAccess("1234", true); userACL.setRoleWriteAccess("1234", true); console.log(userACL);

Pero recibo este error UnhandledPromiseRejectionWarning: TypeError: Invalid attempt to destructure non-iterable instance

estoy esperando la siguiente salida de la consola

 ACL { "1234": { read: true, write: true, delete: false } }

Alguien me puede decir como se puede solucionar esto

about 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

[this.key] = y [key] = están tratando de hacer una desestructuración iterable en lo que sigue a = , pero no puedes hacer una desestructuración iterable en objetos simples, no son iterables.

 class ACL { constructor(key) { this[key] = { // *** read: false, write: false, delete: false } } setRoleReadAccess(key, value){ this[key] = { // *** read: value, } } setRoleWriteAccess(key, value){ this[key] = { // *** write: value, } } setRoleDeleteAccess(key, value){ // ** I added a missing `key` parameter here this[key] = { // *** delete: value, } } }
about 3 years ago · Juan Pablo Isaza Denunciar

0

Cuando haces [key] = {} , estás tratando de hacer una desestructuración, lo que no funciona porque no puedes desestructurar un objeto de esa manera. Solo funciona en arreglos.

Lo que necesita es una asignación a this[key] .

 class ACL { constructor(key) { this[key] = { read: false, write: false, delete: false } } setRoleReadAccess(key, value){ this[key] = { ...this[key], read: value, } } setRoleWriteAccess(key, value){ this[key] = { ...this[key], write: value, } } setRoleDeleteAccess(key, value){ this[key] = { ...this[key], delete: value, } } } const userACL = new ACL("1234"); userACL.setRoleReadAccess("1234", true); userACL.setRoleWriteAccess("1234", true); console.log(userACL);

about 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda