PDA

Просмотр полной версии : Обращение к объекту в двумерном массиве


billion
10.09.2011, 15:12
Здравствуйте!

Есть у меня задача хранить где-то список из уникальных объектов. Решил создать двумерный массив типа (id, объект).

var arr:Array = new Array();
arr.push([256, obj]);
arr.push([26, obj]);
arr.push([9, obj]);


Как мне обратиться к объекту с нужным id?
Примерно что-то вроде arr[arr.indexof(256)][1].visible = true;

Или может есть более простое решение для хранения таких данных?

mayakwd
10.09.2011, 15:54
в вашем случае подойдет обычный Object.

var hash : Object = {};

hash[id] = object;

соответственно получать так же

object = hash[id];

billion
10.09.2011, 17:18
Благодарю!
Это решило мою проблему. Раньше я запихивал объекты в одномерный массив с индексом равному id. Соответственно даже если был один элемент в массиве, но с индексом 2526, массив был огромен и только последний элемент представлял ценность.

Добавлено через 1 час 17 минут
Кстати как управлять созданным объектом с точки зрения освобождения памяти?
Если я буду постоянно добавлять id к объекту, а их у меня будет множество (3-8 порядков), то мне как-то надо будет отчищать этот объект? Дело в том что раньше я добавлял (push) и отчищал (slice) одномерный массив. Как теперь быть? hash[id] = {} так?

samana
10.09.2011, 18:51
Кажется так:
delete hash[id];