【问题标题】:assign variable to value of Dictionary Javascript将变量分配给 Dictionary Javascript 的值
【发布时间】:2022-01-11 14:21:44
【问题描述】:

我正在构建字典,但我希望某些值包含变量。有没有办法将变量传递给字典,以便我可以分配一个点符号变量?变量对象将始终具有相同的结构,并且字典将是静态的,并且每个键值对的结构都相同。本质上我想将字典中的值传递给另一个函数来处理数据。

main.js

import myDictionary from "myDictionary.js"

const variables ={
item:"Hello"
}
const data = myDictionary[key](variables)
console.log(data)


myDictionary.js

const myDictionary = {
key: variables.item
}

所以日志应该显示你好。我知道这将是一些简单的事情,但似乎无法弄清楚。

非常感谢任何帮助

【问题讨论】:

  • 有点像an XY problem。你的最终目标是什么——你想通过将一个字典转移到另一个函数来自动处理来实现什么?

标签: javascript dictionary variables key


【解决方案1】:

您应该修改字典,以便它保留实际的回调函数。只有这样它才能接受参数。

const myDictionary = {
  key: (variables) => variables.item
}

const variables = {
  item: "Hello"
}

const key = "key";
const data = myDictionary[key](variables)
console.log(data)

【讨论】:

    【解决方案2】:

    我必须道歉,因为当我问这个问题时,我并不完全清楚我需要什么,但是经过一些实验并查看了我的边缘案例并查看了 Krzysztof 的答案之后,我有了一个想法并想出了类似的东西-

    
    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,
                    },
                  },
                },
              ];
            },
          }
    

    然后我得到这样的数据 -

    const data = dict?.[key](eventData)
    
    console.log(data)
    

    然后我可以根据需要导航或操作数据。

    感谢所有花时间帮助我的人

    【讨论】:

      【解决方案3】:

      您尝试做的事情是不可能的。 myDictionary.js 文件不知道主文件中的内容。你唯一能做的就是:

      myDictionary.js

      const myDictionary = {
          key: "item"
      }
      

      main.js

      import myDictionary from "myDictionary.js";
      
      const variables = {
          item: "Hello"
      };
      
      const data = variables[myDictionary["key"]];
      console.log(data);
      

      此外,即使 JavaScript 不强制使用分号,它们也会为您省去很多关于破坏自动插入器的愚蠢规则的麻烦。

      【讨论】:

        猜你喜欢
        • 2014-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-28
        • 1970-01-01
        • 2014-03-04
        • 1970-01-01
        • 2023-03-26
        相关资源
        最近更新 更多