Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2011, 14:09
Кандидат Javascript-наук
Отправить личное сообщение для Nightmare Посмотреть профиль Найти все сообщения от Nightmare
 
Регистрация: 16.04.2010
Сообщений: 133

string to array
var str = "arr[s][m1]";

на выходе
arr[s][m1] только массивом. (учитывать множественную вложенность , т.е. nested sets)

Делаю (Array)(str) - ["arr[s][m1]"]
если (Object)(str) - отдельный символ как элемент массива.
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2011, 14:54
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

А что это вы тут делаете?!

Для того чтобы вложить один массив в другой, а вернее в твоем случае объект в объект нужно сделать что-то вроде:
var arr  = {s:{m1:15}};
alert(arr['s']['m1']);


Из чего следует: - А что это вы тут делаете?!
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2011, 15:06
Кандидат Javascript-наук
Отправить личное сообщение для Nightmare Посмотреть профиль Найти все сообщения от Nightmare
 
Регистрация: 16.04.2010
Сообщений: 133

у менять есть input, name в которого именно такой, и я хочу разбить как норм массив. В этом и состоится вопрос
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2011, 15:12
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

В js нет вложенных массивов и массивов с ключами отличными от цифровых. Зато в нем есть объекты.

Следи за мыслью:
var arr = {};
arr.s = {};
arr.s.m1 = 15;

var arr2 = {};
arr2['s'] = {};
arr2['s']['m1'] = 16;
alert([arr.s.m1, arr2['s']['m1'],arr2.s.m1]);


Тебе нужен парсер иначе получишь ошибку, нельзя перескачить промежуточный s(это тоже объект) и создать сразу вложенность.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2011, 15:26
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

А такой пример не понятней будет?

var arr = {
  0:{id:"1",color:"Red"},
  1:{id:"2",color:"Green"},
  3:{id:"3",color:"Blue"}
};

alert(arr[1].id + " " + arr[1].color);
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2011, 15:30
Кандидат Javascript-наук
Отправить личное сообщение для Nightmare Посмотреть профиль Найти все сообщения от Nightmare
 
Регистрация: 16.04.2010
Сообщений: 133

может быть
arr
arr[s]
arr[s][s1]

и мне надо как-то уловить это:
arr = new Array(s = new Array(s1))
Ответить с цитированием
  #7 (permalink)  
Старый 12.09.2011, 15:38
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Сообщение от Nightmare Посмотреть сообщение
может быть
arr
arr[s]
arr[s][s1]

и мне надо как-то уловить это:
arr = new Array(s = new Array(s1))

var arr = {
  s:{s1:"ass1",s2:"ass2",s3:"ass3"}
};
alert(arr.s.s2);
Ответить с цитированием
  #8 (permalink)  
Старый 12.09.2011, 15:45
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Nightmare Посмотреть сообщение
уловить это:
arr = new Array(s = new Array(s1))
улови пожалуйста:
Сообщение от Gozar Посмотреть сообщение
В js нет вложенных массивов и массивов с ключами отличными от цифровых. Зато в нем есть объекты.
отсюда следует:
arr = {} //объект

и вообще заканчивай с new ->
arr = [];
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #9 (permalink)  
Старый 12.09.2011, 15:48
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Тебе нужен объект!, это понятно?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #10 (permalink)  
Старый 12.09.2011, 15:54
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Сообщение от Gozar Посмотреть сообщение
В js нет вложенных массивов и массивов с ключами отличными от цифровых.
Иными словами вот так сделать нельзя:
s:[s1:["ass1", "ass2", "ass3"]]
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать сохранение списков select? sega_z Элементы интерфейса 8 15.05.2011 18:01
PHP to JS Array Pumych Events/DOM/Window 8 10.02.2011 22:30
Ошибка function is not defined KamaZz Общие вопросы Javascript 19 28.09.2010 14:38
Метод remove() в стандартном Array voyager ExtJS 11 08.09.2010 16:04
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43