Как добавить свойства, названные аргументами времени выполнения, к объекту ActionScript? - PullRequest
0 голосов
/ 19 февраля 2009

Мне нужна функция, которая получает два параметра массива одинаковой длины: свойства-имена (строки) и свойства-значения.

функция должна создать объект со свойствами, чтобы, например, после вызова

var obj:Object = makeObject({"prop1","prop2"},{1,2});

условие тестирования (obj.prop1 == 1 && obj.prop2 == 2) должно быть истинным.

Меня убеждают, что это должно быть легко, если вы знаете свой скрипт действий - может быть, это просто синтаксис.

позднее добавление
после перечитывания моего вопроса кажется, что это было не очень легко понять.
моей проблемой было присвоение имен свойствам на основе значений времени выполнения, то есть использование строкового параметра для ссылки на имя свойства.

Ответы [ 2 ]

3 голосов
/ 20 февраля 2009

Object можно рассматривать как карту (или ассоциативный массив) со строками для ключей - я думаю, это то, что вы хотите сделать. Вы можете прочитать об ассоциативных массивах в Flex в документации Adobe .

private function makeObject( keys : Array, values : Array ) : Object
{
    var obj : Object = new Object();

    for( var i : int = 0; i < keys.length; ++i )
    {
        obj[ String(keys[i]) ] = values[i];
    }

    return obj;
}

Это создаст новый Object с ключами, равными значениям в первом массиве и значениями, равными элементам во втором массиве.

3 голосов
/ 19 февраля 2009

Не уверен, что я понимаю ваш вопрос, но вы можете создать объект, используя литерал объекта:

var item:Object = {prop1: 1, prop2: 2};

trace (item.prop1 == 1 && item.prop2 == 2) // true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...