Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2013, 15:08
Новичок на форуме
Отправить личное сообщение для Bryant-24 Посмотреть профиль Найти все сообщения от Bryant-24
 
Регистрация: 26.07.2011
Сообщений: 6

Создать объект в объекте
Добрый день!

Сильно не ругайтесь, только начинаю изучать JS. Имеем выражение вида {A: {B: 'C'}} Насколько я понимаю, это можно расшифровать как объект A имеет объект B, который в свою очередь имеет строку C.

У меня есть массив следующего содержания: obj[A, B, C] и мне необходимо привести его к вышеописанному выражению: {A: {B: 'C'}} Я обхожу массив циклом и создаю объект в объекте (проверяя, не является ли текущий элемент последним - если так, то делаем его строкой).

Так вот я не совсем понимаю, как сделать так, чтобы предыдущий созданный объект содержал в себе текущий объект, подскажите, что прописать в цикле?

for(var i=0; i<obj.length; i++) {
???
}
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2013, 15:35
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

Сообщение от Bryant-24 Посмотреть сообщение
Имеем выражение вида {A: {B: 'C'}} Насколько я понимаю, это можно расшифровать как объект A имеет объект B, который в свою очередь имеет строку C.
А, это не объект. это свойство безымянного объекта! Так же как и B, тоже не объект. это свойство.
var obj3 = new Object(); //создали объект
obj3.C = 'c';//создали ему свойство C

var obj2 = new Object();//создали еще один объект
obj2.B = obj3;//создали ему свойство B и присвоили ему ссылку(указатель) на obj3

var obj = new Object();//создали еще один объект
obj.A = obj2;//создали ему свойство A и присвоили ему ссылку(указатель) на obj2

console.log(obj);
//вывели в консоль объект obj

Последний раз редактировалось skrudjmakdak, 10.07.2013 в 15:37.
Ответить с цитированием
  #3 (permalink)  
Старый 10.07.2013, 15:49
Новичок на форуме
Отправить личное сообщение для Bryant-24 Посмотреть профиль Найти все сообщения от Bryant-24
 
Регистрация: 26.07.2011
Сообщений: 6

Спасибо большое, что разъяснили.
А как теперь это сделать в цикле?
Пробовал начинать так, но синтаксис еще полностью не знаю:
for(var i=0; i<obj.length; i++) {
        var obj+i = new Object();
        obj.obj[i] = obj.i;
    }
    alert(obj);
Ответить с цитированием
  #4 (permalink)  
Старый 10.07.2013, 16:06
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

как вариант:
var obj = new Object();
obj.C = 'c';

var new_obj, old_obj

old_obj = obj;

for (var i = 0; i < 3; i++)
	{
	var new_obj = new Object();
	new_obj.property = old_obj;
	old_obj = new_obj;
	}
console.log(old_obj);


но это честно говоря извращение))

Последний раз редактировалось skrudjmakdak, 10.07.2013 в 16:09.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ProtoBuf Js Создать объект из proto файла Suharik Prototype & script.aculo.us 2 15.08.2014 13:20
По строке создать объект mue Общие вопросы Javascript 1 24.11.2012 14:57
как добавить свойство объекта в объект в объекте ? %) mitiya Общие вопросы Javascript 1 07.10.2012 14:46
Создать объект из строчек Hagrael Events/DOM/Window 16 09.07.2010 10:25
Создать объект динамически Bajjy Общие вопросы Javascript 12 26.09.2008 01:06