Quiero hacer esto con la programación.
Problema
attributes: { allow: [ '0' ], create: [ '0' ], all: [ '0' ], rfid: [ '0' ], }lo que quiero es
attributes: { allow:'0', create: '0', all:'0', rfid: '0', }Enfoque funcional:
Puede usar Object.entries para convertir un objeto { a: 1, b: 2 } en una matriz de matrices (que contienen pares de claves y valores) [['a', 1], ['b', 2]] . Luego puede usar Array#map para aplicar una operación en cada uno y asignar cada elemento de la matriz al valor de retorno de la operación. En nuestro caso, en realidad tendremos algo como [['allow', ['0']], ...] en ese punto y queremos asignarlo a [['allow', '0'], ...] . Luego, al final, deshacemos la primera operación usando Object.fromEntries para recuperar un objeto.
La operación de mapeo puede ser simplemente ([k, [v]]) => [k, v] . Usando la desestructuración, obtenemos una forma expresiva de extraer el valor que necesitamos y devolverlo.
Ahora, dado que todo parece estar dentro de otro objeto con attributes como clave (y no sé si puede haber otras claves), devolveremos otro objeto con los attributes reemplazados y las otras claves conservadas:
function transform (object) { return { ...object, attributes: Object.fromEntries( Object.entries(object.attributes).map(([k, [v]]) => [k, v]) ) } }Enfoque imperativo:
Este enfoque es más simple, pero mutará su objeto. Puede recorrer las claves en el objeto de attributes y reemplazar cada valor con su propio primer elemento de matriz, de la siguiente manera:
function transform (object) { for (const key in object.attributes) { object.attributes[key] = object.attributes[key][0] } return object }