Estoy creando un diccionario, pero me gustaría que algunos de los valores contengan variables. ¿Hay alguna forma de pasar una variable al diccionario para poder asignar una variable de notación de puntos? el objeto de variables siempre tendrá la misma estructura y el diccionario será estático y estructurado de la misma manera para cada par de valores clave. esencialmente quiero pasar el valor del diccionario a otra función para manejar los datos.
principal.js
import myDictionary from "myDictionary.js" const variables ={ item:"Hello" } const data = myDictionary[key](variables) console.log(data)miDiccionario.js
const myDictionary = { key: variables.item }por lo que el registro debe mostrar hola. Sé que será algo sencillo, pero parece que no puedo resolverlo.
como siempre cualquier ayuda es muy apreciada
Debe modificar el diccionario para que mantenga las funciones de devolución de llamada reales. Sólo entonces podrá aceptar argumentos.
const myDictionary = { key: (variables) => variables.item } const variables = { item: "Hello" } const key = "key"; const data = myDictionary[key](variables) console.log(data)Lo que intentas hacer no es posible. El archivo myDictionary.js no tiene idea de lo que hay dentro de su archivo principal. Lo único que podrías hacer sería:
miDiccionario.js
const myDictionary = { key: "item" }principal.js
import myDictionary from "myDictionary.js"; const variables = { item: "Hello" }; const data = variables[myDictionary["key"]]; console.log(data);Además, aunque JavaScript no hace cumplir los puntos y comas, te ahorrarán muchos dolores de cabeza de alguna regla estúpida que rompe el insertador automático.
Debo disculparme porque cuando hice la pregunta no tenía muy claro lo que necesitaba, pero después de experimentar un poco y mirar mis casos extremos y después de mirar la respuesta de Krzysztof, tuve una idea y se me ocurrió algo similar a esto:
const dict = { key: (eventData) => { return [ { module: 'company', entity: 'placement', variables: { placement_id: { value: eventData.id, }, }, }, { module: 'company', entity: 'placement', variables: { client_id: { value: eventData.client.id, }, }, }, ]; }, }Entonces obtengo los datos de esta manera:
const data = dict?.[key](eventData) console.log(data)Luego puedo navegar o manipular los datos como lo necesite.
gracias a todos los que dedicaron tiempo para ayudarme