 
			
				04.08.2017, 08:37
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.02.2015 
					
					
					
						Сообщений: 41
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Формируем ленту из разных событий
			 
			
		
		
		
		Всем привет! 
Помогите решить такую задачку...
 
Есть объекты и массивы. 
Например:
 
{
    "events" : {
      "prop1" : {
        "simple1" : [ 
			{
			  "title" : "Заголовок1_1",
			  "date" : "Дата1_1",
			},
			{
			  "title" : "Заголовок1_2",
			  "date" : "Дата1_2",
			} 
		],
        "simple2" : [ {
          "title" : "Заголовок2",
          "date" : "Дата2",
        } ]
      },
      "prop2" : {
        "simp1" : [ {
          "title" : "Заголовок3",
          "type" : "Тип1",
          "date" : "Дата3",
        } ],
        "simp2" : [ {
          "title" : "Заголовок4",
          "type" : "Тип2",
          "date" : "Дата4",
        } ]
      }
    }
}
Необходимо объединить весь объект в одну ленту. 
Из одного массива создать ленту я понимаю, а вот как из в всех в одну и с сортировкой по дате.
 
Должно получиться так: 
1. Заголовок1_1 - Дата1_1 
2. Заголовок1_2 - Дата1_2 
3. Заголовок2 - Дата2 
4. Заголовок3 - Тип1 - Дата3 
4. Заголовок3 - Тип2 - Дата4  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 08:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 "simp1" : [ и "simp2" : [ - это ошибка. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 08:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.02.2015 
					
					
					
						Сообщений: 41
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Да, точно, забыл в массив объединить. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 08:52
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от tk.stas
			
		
	 | 
 
	| 
		Из одного массива создать ленту я понимаю, а вот как из в всех в одну и с сортировкой по дате.
	 | 
 
	
 
 Если можешь делать простой - значит нужно сложный свести к простому.   
Пройдись по данным объекта, запихни все, найденные элементы массивов в один. А как работать с одним массивом ты уже знаешь...    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 08:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 tk.stas, 
 на форуме, рони набил себе мозоли о клаву, создавая ответы на "как отсортировать объект по ...", ищите, это уже есть готовое. Но если этот объект порождает ваш сервер, то сортировку уж лучше делать сразу на нем. А вывод всего в одну, это пройтись циклом и вывод. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 09:12
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.02.2015 
					
					
					
						Сообщений: 41
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 12:37
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от tk.stas
			
		
	 | 
 
	| 
		и с сортировкой по дате.
	 | 
 
	
 
  ???
  
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
var data ={
    "events" : {
      "prop1" : {
        "simple1" : [
      {
        "title" : "Заголовок1_1",
        "date" : "Дата1_1"
      },
      {
        "title" : "Заголовок1_2",
        "date" : "Дата1_2"
      }
    ],
        "simple2" : [ {
          "title" : "Заголовок2",
          "date" : "Дата2"
        } ]
      },
      "prop2" : {
        "simp1" : [ {
          "title" : "Заголовок3",
          "type" : "Тип1",
          "date" : "Дата3"
        } ],
        "simp2" : [ {
          "title" : "Заголовок4",
          "type" : "Тип2",
          "date" : "Дата4"
        } ]
      }
    }
}
function fn(a) {
    var c = [];
    Object.keys(a).forEach(function(d) {
        "title" == d ? c.push(a) : "object" == typeof a[d] && (c = c.concat(fn(a[d])))
    });
    return c
}
fn(data).
//.sort() неизвестно как сортировать 
forEach(function(a, c) {
    a = Object.keys(a).map(function(c) {
        return a[c]
    }).join("-");
    $("<li>", {
        text: a
    }).appendTo("ol")
});
});
  </script>
</head>
<body>
<ol>
</ol>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 13:17
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.02.2015 
					
					
					
						Сообщений: 41
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		??? 
 
 
 
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
var data ={
    "events" : {
      "prop1" : {
        "simple1" : [
      {
        "title" : "Заголовок1_1",
        "date" : "Дата1_1"
      },
      {
        "title" : "Заголовок1_2",
        "date" : "Дата1_2"
      }
    ],
        "simple2" : [ {
          "title" : "Заголовок2",
          "date" : "Дата2"
        } ]
      },
      "prop2" : {
        "simp1" : [ {
          "title" : "Заголовок3",
          "type" : "Тип1",
          "date" : "Дата3"
        } ],
        "simp2" : [ {
          "title" : "Заголовок4",
          "type" : "Тип2",
          "date" : "Дата4"
        } ]
      }
    }
}
function fn(a) {
    var c = [];
    Object.keys(a).forEach(function(d) {
        "title" == d ? c.push(a) : "object" == typeof a[d] && (c = c.concat(fn(a[d])))
    });
    return c
}
fn(data).
//.sort() неизвестно как сортировать 
forEach(function(a, c) {
    a = Object.keys(a).map(function(c) {
        return a[c]
    }).join("-");
    $("<li>", {
        text: a
    }).appendTo("ol")
});
});
  </script>
</head>
<body>
<ol>
</ol>
</body>
</html>
	 | 
 
	
 
 Спасибо!
 
А подскажи пожалуйста, как можно определить путь к значению в объекта. т.е путь к "Дата3" = data.prop2.simp1  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 13:25
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 tk.stas, 
 data.events.prop2.simp1[0].date 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.08.2017, 13:33
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.02.2015 
					
					
					
						Сообщений: 41
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		tk.stas, 
 data.events.prop2.simp1[0].date
	 | 
 
	
 
 Нет. Мне надо чтоб я ввел значение 'Дата3', а скрипт мне показал путь к этому значению data.events.prop2.simp1[0].date.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось tk.stas, 04.08.2017 в 13:50.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |