Сделать объекты с именами ключей из переменных - PullRequest
1 голос
/ 26 декабря 2009

Я хотел бы создать объект с именами ключей, взятыми из переменной. Возможно, это недостаточно ясно, поэтому позвольте мне привести пример.

У меня есть две переменные var str1: String = 'firstKey'; и str2: String = 'secondKey';

Как создать объект, который будет выглядеть так:

var obj: Object = {firstKey: «некоторое значение», secondKey: «другое значение»}, обратите внимание, что firstKey и secondKey являются значениями переменных str1 и str2.

Выполнение obj = {str1: 'some value', str2: 'some other value'} не дает желаемого результата

Спасибо за ответы! Ладислав Клинц

Ответы [ 3 ]

5 голосов
/ 26 декабря 2009

Я не уверен, что правильно понял, но это может быть тем, что вы хотите:

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';
1 голос
/ 05 января 2010

Как предложил Лекс, просто разбейте () строку разделителем на массив и используйте его для заполнения вашего объекта.

, например

//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]);

НТН

0 голосов
/ 26 декабря 2009

Я думаю, вы должны использовать массив для этого. Таким образом, ваш объект имеет массив (с ключевыми строками в качестве смещения). Я не уверен, что синтаксис AS 3 для этого, но я уверен, что это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...