Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Рекурсивно добавить в массив (https://javascript.ru/forum/misc/21523-rekursivno-dobavit-v-massiv.html)

Nightmare 13.09.2011 15:45

Рекурсивно добавить в массив
 
Все привет и с праздником.

есть массив:
arr = ['a', 'a1', 'a2' /*, и так продолжать*/];
// нужно получить массив типа a.a1.a2, где a,a1,a2 пускай будут = 1
// нужна вот такая вложенность из линейного массива

ksa 13.09.2011 15:51

Цитата:

Сообщение от Nightmare
нужно получить массив типа a.a1.a2, где a,a1,a2 пускай будут = 1

Это вот как понять? :blink:

devote 13.09.2011 15:54

Обычно это делается из объектов:
var arr = {'a': {'a1': {'a2':1}}};
alert(arr.a.a1.a2);

А из массива делать глупо и не разумно.

Nightmare 13.09.2011 15:58

извините, извините))
a = [a1 = a2[]] тип того)

Nightmare 13.09.2011 16:01

не знаю можно ли так но мне надо именно так:
s.s1 = 2;
s = 1;
s.s1.s2 = 3;
// и потом, получать значения

s.s1 - выдасть 2
s - выдасть 1

// можно так?

devote 13.09.2011 16:08

Цитата:

Сообщение от Nightmare
не знаю можно ли так но мне надо именно так:

Нет, так нельзя... тока если через прототипы, но писанины будет не мало.

Nightmare 13.09.2011 16:08

можно маленький примерчик, очень нужно.

Gozar 14.09.2011 15:41

Nightmare,
var a = {}; //тут должен быть объект, иначе нельзя
a.a1 = 1;
a.a2 = 2;
alert([a.a1,a.a2]);


ps: смотри json

devote, как можно через прототипы сделать
var s = 1;
s.s1 = 1;

Я тоже хотел бы посмотреть.

ps2:

var s = new Number(15);
s.s1 = 2;
alert([parseInt(s),s.s1]);


var s = new String("23.2s");
s.s1 = 2;
alert([s.toString(),s.s1]);

Но это какбэ изврат.

popov654 15.09.2011 01:23

А по-моему круто) Хоть и изврат :D

Nightmare 15.09.2011 12:51

но s1 не является дочерним элементом s )


Часовой пояс GMT +3, время: 02:40.