AS3 Как сделать вид массива, который индексирует вещи на основе объекта? но не быть строгим, как словарь - PullRequest
1 голос
/ 08 ноября 2010

Как создать вид массива, который индексирует вещи на основе объекта?но не быть строгим, как словарь.

Что я имею в виду:

var a:Object = {a:3};
var b:Object = {a:3};

var dict:Dictionary = new Dictionary();
dict[a] = 'value for a';

// now I want to get the value for the last assignment
var value = dict[b];

// value doesn't exits :s

Как сделать что-то подобное.Чтобы не быть тяжелым, так как много данных будет течь туда.

У меня есть идея использовать метод toString (), но я должен был бы создавать собственные классы .. Я хотел бы что-то быстрое ..

1 Ответ

1 голос
/ 09 ноября 2010

Почему бы не создать специальный класс, который инкапсулирует массив, поместить туда методы для добавления и удаления элементов из массива, а затем вы можете создать специальный метод (может быть, getValueByObject (), что бы ни имело смысла).Тогда вы можете сделать:

var mySpecialArrayClass:MySpecialArrayClass = MySpecialArrayClass();

var a:Object = {a:3};
var b:Object = {a:3};

mySpecialArrayClass.addElement(a,'value for a');

var value = mySpecialArrayClass.getValueByObject(a);

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

Обновление:

Хотелось бы что-нибудь подобное?

http://snipplr.com/view/6494/action-script-to-string-serialization-and-deserialization/

Обновление:

Не могли бы вы использовать функцию ===?если вы говорите

if ( object === object ) 

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

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