【问题标题】:javascript - Return the Variable name of an Object Arrayjavascript - 返回对象数组的变量名
【发布时间】:2016-05-25 17:12:40
【问题描述】:

我有一个类似于下面的对象数组。

var object1 = {...},
var object2 = {...};

var array = [object1,object2];

我希望稍后能够在脚本中访问实际的变量名。例如,当使用类似于下面的 for 循环的代码时,id 喜欢返回实际的字符串“object1”而不是返回实际的对象。

for (i in array) {
    var variableName = array[i];
}

我考虑过使用键值对,但还没有弄清楚细节。

keyValuePair = [{name: "object1", object:object1}, {name:"object2",object:object2}];

我不确定它的结构是否理想,也不确定如何访问它。

想法?

【问题讨论】:

  • 变量名本身实际上并不是对象的一部分,因此除非您将其存储在对象中,否则无法从对象中取回它。但是,看起来您可能正朝着一个糟糕的方向前进……通常将对象命名为 object1、object2 并不是一个好主意,这通常表明设计有问题。
  • 你为什么要这个名字?
  • 我需要能够在稍后使用它的变量名,因为我需要在运行时更改对象的“名称”属性,因为它是在应用程序中动态创建的。为了清楚起见,我认为简单地使用对象变量名称很有用。
  • 相关问题:[javascript] get name of variable(希望你之前搜索过:-/)
  • “我需要在运行时更改对象的“名称”属性” 你只需要一个对该对象的引用(不管你如何得到那个参考)。如果您能提供一个更完整的示例来说明您实际试图解决的问题,我们可能会为您提供更好的帮助。

标签: javascript arrays javascript-objects


【解决方案1】:

为什么不使用变量名作为属性?

var object1 = {...},
var object2 = {...};

var array = { object1: object1, object2: object2 };

【讨论】:

    【解决方案2】:

    我会创建这样的东西:

    var object1 = {...};
    var object2 = {...};
    
    var keyValuePair = {
      object1: object1,
      object2: object2
    };
    

    然后你可以像这样访问object1keyValuePair["object1"]

    请注意,在 ECMAScript 6 中有更短的语法:

    var keyValuePair = {
      object1,
      object2
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 2012-12-18
      • 2016-04-25
      • 2017-07-11
      • 1970-01-01
      • 2011-09-02
      • 2015-12-21
      相关资源
      最近更新 更多