Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.12.2014, 14:26
Аватар для voodoo_dn
Интересующийся
Отправить личное сообщение для voodoo_dn Посмотреть профиль Найти все сообщения от voodoo_dn
 
Регистрация: 17.12.2014
Сообщений: 11

Массив объектов
Добрый день!
Подскажите, мне надо создать ассоциативный массив объектов.

obj = { a: 1, b: 2, c:3 } (объектов будет много)
и добавить их в ассоциативный массив
list[i] = obj;

но когда делаешь typeof(list) - возвращает object. и у меня не получатся удалить элемент через splice.

В общем, помогите
Ответить с цитированием
  #2 (permalink)  
Старый 26.12.2014, 14:38
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от voodoo_dn
typeof(list) - возвращает object
var list = [];

if(list instanceof Array) {
    alert('list является массивом');
}
else {
    alert('list не является массвом');
}
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2014, 14:49
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

voodoo_dn,
Цитата:
у меня не получатся удалить элемент через splice
да ладно? ну ка покажи
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2014, 14:51
Аватар для voodoo_dn
Интересующийся
Отправить личное сообщение для voodoo_dn Посмотреть профиль Найти все сообщения от voodoo_dn
 
Регистрация: 17.12.2014
Сообщений: 11

Допустим элемент имеет индекс 'ololo@lolo.ololo', в массиве list.
list.splice('ololo@lolo.ololo', 1);

результата никакого. элемент в массиве.
Ответить с цитированием
  #5 (permalink)  
Старый 26.12.2014, 15:13
Аватар для voodoo_dn
Интересующийся
Отправить личное сообщение для voodoo_dn Посмотреть профиль Найти все сообщения от voodoo_dn
 
Регистрация: 17.12.2014
Сообщений: 11

Т.е. я не могу создать ассоциативный массив с доступом по list['ololo@lolo.ololo'] ?
Ответить с цитированием
  #6 (permalink)  
Старый 26.12.2014, 15:15
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

voodoo_dn, в массиве нет таких индексов, там циферки.
var obj = { a: 1, b: 2, c:3 };
var list = {};
list['ololo'] = obj; // добавляем
delete list['ololo']; // удаляем

Последний раз редактировалось Rise, 26.12.2014 в 15:33.
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2014, 15:32
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

voodoo_dn, в js есть массивы - с числовыми индексами и есть объекты - со строковыми ключами. "Ассоциативных массивов" нет, подобную роль исполняют объекты. Чтобы удалить элемент из объекта - следует использовать delete:
var list = {}, 
    obj = { a: 1, b: 2, c:3 }, 
    i = "ololo";

list[i] = obj;

alert(JSON.stringify(list, null, '\t'))

delete list['ololo'];

alert(JSON.stringify(list, null, '\t'))
Следует также помнить, что объект в js остаётся в памяти до тех пор пока на него существует хотябы одна ссылка. Т.е. после удаления из list объект всё ещё доступен по ссылке через переменную obj.
__________________
29375, 35

Последний раз редактировалось Aetae, 26.12.2014 в 15:44.
Ответить с цитированием
  #8 (permalink)  
Старый 26.12.2014, 15:43
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Aetae, что-то левого кода многовато
Ответить с цитированием
  #9 (permalink)  
Старый 26.12.2014, 15:44
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Rise, движок распидорасило от строки 'ololo@lolo.ololo'
Код:
[JS]var a = 'ololo@lolo.ololo';[/JS]
var a = 'ololo@lolo.ololo';
__________________
29375, 35

Последний раз редактировалось Aetae, 26.12.2014 в 15:46.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить массив объектов по имени ShutTap jQuery 24 16.09.2014 13:45
Массив объектов doox911 Библиотеки/Тулкиты/Фреймворки 6 16.01.2014 22:36
массив объектов xmlHttpRequest Seintero AJAX и COMET 1 10.12.2013 22:29
массив объектов bohdan Общие вопросы Javascript 2 29.02.2012 23:40
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10