Javascript.RU

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

Подскажите как вывести все свойства объекта?
Есть объект
obj = {ob : "param 1", more : {ob : "param 2", more: {ob : "param 3", more : {ob: param: "param 3", more: "stop" }}}};

как мне его перебрать чтобы получить массив всех ob и массив всех more ?

пожалуйста подскажите!
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2012, 14:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от tiho
как мне его перебрать
Ну косинус же! (с)
http://javascript.ru/for..in
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2012, 14:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от tiho
чтобы получить массив всех ob и массив всех more ?
Ну и еще из букваря...
http://javascript.ru/typeof
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2012, 14:39
Аспирант
Отправить личное сообщение для tiho Посмотреть профиль Найти все сообщения от tiho
 
Регистрация: 19.08.2012
Сообщений: 79

ksa, да я понимаю как это сделать для свойств верхнего уровня, а как перебрать вложенные объекты? подскажи пожалуйста!
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2012, 14:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от tiho
как перебрать вложенные объекты?
1. Проверить не объект ли это...
2. Если объект - перебрать его как любой объект.

Про рекурсию слышал? Так вот это как раз её случай.
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2012, 14:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от tiho
{ob: param: "param 3", more: "stop" }
А это как понимать?
Ответить с цитированием
  #7 (permalink)  
Старый 21.09.2012, 15:00
Аспирант
Отправить личное сообщение для tiho Посмотреть профиль Найти все сообщения от tiho
 
Регистрация: 19.08.2012
Сообщений: 79

это типа сигнал "хватит переберать"

PS. про рекурсию щас почитаю, спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 21.09.2012, 15:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от tiho
это типа сигнал "хватит переберать"
По мне так это типа "синтаксическая ошибка"...
Ответить с цитированием
  #9 (permalink)  
Старый 21.09.2012, 15:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,137

Сообщение от tiho
получить массив всех ob и массив всех more ?
Ну про массив "всех ob" кагбэ понятно... А вот зачем тебе еще массив объектов (которые more)?
Нипанятна...
Ответить с цитированием
  #10 (permalink)  
Старый 21.09.2012, 15:19
Аспирант
Отправить личное сообщение для tiho Посмотреть профиль Найти все сообщения от tiho
 
Регистрация: 19.08.2012
Сообщений: 79

function parseOb (ob) {
	for(var key in ob) 
	{
		var massVal = []
		var massMore = []
		massVal.push(key)
		massMore.push(ob[key])
		if (ob[key] instanceof Object)
		{
			parseOb(ob)
		}
	}
}
var obj = {val: 1, more: { val: 2, more: { val: 3, more: { val: 4, more: 0 } } } };
parseOb(obj);

ругается Uncaught RangeError: Maximum call stack size exceeded

ЗЫ, мне нужно понять если следущий more объект то взять его имя (val) и так пока незакончатся все more (следуя вашему совету поменял "stop" на 0)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести данные из PHP Sherminator Events/DOM/Window 2 07.08.2012 20:11
Не правильно работает прокрутка, подскажите как сделать правильно? denfer12 Общие вопросы Javascript 0 09.05.2012 00:34
Подскажите как вывести надпись poseydon Общие вопросы Javascript 5 12.04.2012 22:50
Как получить все атрибуты html елемента imsha Events/DOM/Window 1 07.12.2011 12:42
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00