Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 10.11.2014, 07:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

cript, в js нет понятия "многоуровневый массив". Есть массив( [] ). Есть объект( {} ). Ведут они себя (если утрировать) одинаково, только в первом ключи - цифры, во втором произвольные строки.
Если в хотите имитировать "многоуровневый массив" вы должны один массив\объект положить в другой..
a = {
  key1: [
    "index"
  ], 
  key2: [
    "index2"
  ]
}
__________________
29375, 35
Ответить с цитированием
  #22 (permalink)  
Старый 10.11.2014, 08:42
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Сообщение от Aetae Посмотреть сообщение
cript, в js нет понятия "многоуровневый массив". Есть массив( [] ). Есть объект( {} ). Ведут они себя (если утрировать) одинаково, только в первом ключи - цифры, во втором произвольные строки.
Если в хотите имитировать "многоуровневый массив" вы должны один массив\объект положить в другой..
a = {
  key1: [
    "index"
  ], 
  key2: [
    "index2"
  ]
}
В таком случае добавить к индексу key1 в конец новое значение можно так a['key1'] = 'new';
Удалить первое значение delete a['key1'][0];
Проверить на наличие значений в ключе key1 if(a['key1'] != undefined)?

Последний раз редактировалось cript, 10.11.2014 в 08:51.
Ответить с цитированием
  #23 (permalink)  
Старый 10.11.2014, 08:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

cript,
проверить if('key1' in a && a['key1'].length)
удалить добавить смотрите работу с массивом
Ответить с цитированием
  #24 (permalink)  
Старый 10.11.2014, 09:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

cript, нет по всем пунктам кроме последнего(но и он - плох).
По ключу key1 в объект a находится массив.
Делая так: a['key1'] = 'new' вы заменяте массив на строку 'new', а ничего никуда не добавляете. "Равно" - это "равно", а не "добавить".
Если вы хотите добавить значение в массив по ключу key1 и с индексом 0 - так и следует писать a['key1'][0] = 'new', а лучше востпользоваться специальным методом массива, a['key1'].push('new'). Для удаления из массива также нельзя(не хорошо) использовать delete, т.к. индексы при удалении через delete не пересчитываются. Забрать первое значение: a['key1'].shift(), последнее: a['key1'].pop() .

А вообще сдаётся мне что вы нифигашеньки не читали никаких статей или учебников.
http://learn.javascript.ru/array
http://learn.javascript.ru/object
http://learn.javascript.ru/array-methods
__________________
29375, 35
Ответить с цитированием
  #25 (permalink)  
Старый 10.11.2014, 10:10
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Благодарю за ответы, разобрался
Ответить с цитированием
  #26 (permalink)  
Старый 11.11.2014, 15:19
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Нет никаких массивов в скриптах, это голимые коллекции. Даже если оно посчитает length == 100500 после arr[100500]=1, это - рендер, а там - в кишках - 1 элемент. js только изображает настоящий массив чем и сбивает своих мемберов с толку.

Один раз напоролся на это дело как те одноглазые на сук. Казалось бы у меня есть "двумерный массив", ну значит положить его в лист екзеля должно быть делом одного метода. Так х нанэ. Одним методом можно положить двумерный массив, а не коллекцию коллекций. Коллекцию надо итерировать, дрочить то есть.

С другой стороны применения таким православным массива в народе нет. Народ нормально понимает только коллекции.

Последний раз редактировалось kostyanet, 11.11.2014 в 15:21.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 07:33
Отправить, когда четко соберется массив vas88811 Events/DOM/Window 11 26.02.2014 21:55
Массив объектов doox911 Библиотеки/Тулкиты/Фреймворки 6 16.01.2014 22:36
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30