【问题标题】:Defining an object with a dynamic key in node js (javascript) [duplicate]在节点js(javascript)中使用动态键定义对象[重复]
【发布时间】:2018-11-29 23:00:34
【问题描述】:

我需要这样做:

let obj = {}
obj.obj1 =  {'obj11':5}
console.log(obj.obj1.obj11)

//5

但我需要动态定义最后一个对象的最后一个键,例如:

let obj = {}
key = 'obj11'
obj.obj1 =  { key :5}
console.log(obj.obj1.obj11)
// undefined

【问题讨论】:

    标签: javascript node.js oop object-object-mapping


    【解决方案1】:

    是的,您可以这样做:

    console.log(obj.obj1[key]);
    

    JavaScript 中的每个对象基本上都是一个字典,因此您可以通过字典语法访问它。

    【讨论】:

      【解决方案2】:

      要在 javascript 对象中定义计算属性,请使用 []

      尝试以下方法:

      let obj = {}
      key = 'obj11'
      obj.obj1 =  { [key] :5}
      console.log(obj.obj1.obj11)

      供参考:Reference

      【讨论】:

      • @CarlosFelipe 如果答案对您有帮助,请标记为已接受 :-)
      • 否,将此答案标记为例外如果这是可用的最佳答案。
      【解决方案3】:

      您必须为此使用括号表示法

      let obj = {}
      key = 'obj11'
      obj.obj1 =  { [key] :5}
      console.log(obj.obj1.obj11)

      【讨论】:

        【解决方案4】:

        试试

        obj.obj1[key] = 5;
        
        console.log(obj.obj1.obj11);
        

        对象表示法不支持直接将变量作为键,但 java-script 字典可以。

        要在对象符号语法中计算变量,请使用类似这样的括号

        obj.obj1 = {[key]: 5};
        
        console.log(obj.obj1.obj11);
        

        【讨论】:

          猜你喜欢
          • 2016-02-27
          • 2018-06-12
          • 2021-04-04
          • 2021-10-01
          • 2011-09-23
          • 1970-01-01
          • 1970-01-01
          • 2018-05-20
          • 2018-12-05
          相关资源
          最近更新 更多