Показать сообщение отдельно
  #1 (permalink)  
Старый 22.11.2014, 15:22
Интересующийся
Отправить личное сообщение для javacrypt Посмотреть профиль Найти все сообщения от javacrypt
 
Регистрация: 10.11.2014
Сообщений: 12

Удаление свойств массива/объекта
У меня есть большой список различных продуктов, которые выводятся на экран. Эта маленькая игра, где каждый продукт рисуется на экране. Пользователь может удалять, добавлять любой продукт из списка. Так вот возник вопрос как оптимальнее хранить список продуктов. На выбор есть 2 способа:
var goods = {
   "0": new Apple(),
   "1": new Orange(),
   "2": new Cherry()
}

delete goods["1"];

Очень удобно удалять любой объект из хэш-таблицы, указывая только id.
Второй способ:
var goods = [
   new Apple(),
   new Orange(),
   new Cherry()
]

for (var i = 0; i < goods.length; i++) {
  if (goods[i].getId() == 1) {
    goods.splice(i, 1);
  }
}

Тут нужно пробегать по всему массиву, брать id каждого объекта и сравнивать с переданным id для удаления.
Так вот список у меня большой и каждый продукт рисуется на экран, по-этому не знаю как оптимальнее организовать список для быстрого удаления экземпляров. Слышал, что работа с массивом быстрее чем с хеш-объектом. Как поступить?

Последний раз редактировалось javacrypt, 22.11.2014 в 15:27.
Ответить с цитированием