代码之家  ›  专栏  ›  技术社区  ›  Ladislav

使用变量中的键名生成对象

  •  1
  • Ladislav  · 技术社区  · 15 年前

    我想创建一个从变量中获取键名的对象。也许这还不够清楚,让我举个例子。

    我有两个变量var str1:string='firstkey';和str2:string='secondkey';

    我如何制作一个看起来像:

    var obj:object=firstkey:“some value”,secondkey:“some other value”,注意firstkey和secondkey是变量str1和str2的值。

    执行obj=str1:'some value',str2:'some other value'不会产生我想要的结果

    一大堆答案! 拉迪斯拉夫克林克

    3 回复  |  直到 15 年前
        1
  •  5
  •   grapefrukt    15 年前

    我不确定我理解的正确,但这可能是你想要的:

    var str1:String = 'firstKey';
    var str2:String = 'secondKey';
    
    var myObj:Object = {}; // shorthand for a new object
    myObj[str1] = 'some value';
    myObj[str2] = 'some other value';
    

    括号内的字符串是展开的,所以实际上是这样:

    myObj.firstKey = 'some value';
    myObj.secondKey= 'some other value';
    
        2
  •  1
  •   George Profenza    15 年前

    正如莱克斯建议的,只是 split() a String 将分隔符放入数组中,并使用该分隔符填充对象。

    例如

    //get the values as arrays
    var keys:Array = String('firstKey,secondKey').split(',');
    var values:Array = String('some value,some other value').split(',');
    var keysNum:int = keys.length;
    //populate the object
    var obj:Object = {};
    for(var i:int = 0; i < keysNum; i++) 
        obj[keys[i]] = values[i];
    //test
    for(var k:String in obj)
        trace('key: ' + k + ' value: ' + obj[k]);
    

    高温高压

        3
  •  0
  •   user254875486 TM Creative    15 年前

    我想你得用一个数组。所以您的对象有一个数组(其中键字符串作为偏移量)。我不确定AS3的语法是什么,但我确信这是可能的。

    推荐文章