| 
	| 
	
	| 
		
	| 
			
			 
			
				09.06.2014, 14:13
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.10.2010 
						Сообщений: 571
					 
		
 |  |  
	| 
				Как преобразовать объект в упорядоченный массив
			 Нужно преобразовать такой объект 
{
  ru: {
    pos:1,
    title:'Русский'
  },
  en: {
    pos:3,
    title:'English'
  },
  de: {
    pos:2,
    title:'Deutsch'
  }
}
В такой массив
 
[
  {
    code: 'ru',
    title:'Русский'
  },{
    code: 'de',
    title:'Deutsch'
  },{
    code: 'en',
    title:'English'
  },
]
Есть какой-нибудь элегантный способ? |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 14:21
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| Shitbox2,
    
var  data = {
  ru: {
    pos:1,
    title:'Русский'
  },
  en: {
    pos:3,
    title:'English'
  },
  de: {
    pos:2,
    title:'Deutsch'
  }
}, arr = [] ;
Object.keys(data).forEach(function (key) {
   arr[data[key]['pos']-1]={code: key, title : data[key]['title']}
});
alert(JSON.stringify(arr))
 			 Последний раз редактировалось рони, 09.06.2014 в 14:24.
 |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 14:28
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.10.2010 
						Сообщений: 571
					 
		
 |  |  
	| Мое решение было таким 
var input = {
  ru: {
    pos:1,
    title:'Русский'
  },
  en: {
    pos:3,
    title:'English'
  },
  de: {
    pos:2,
    title:'Deutsch'
  }
};
var output = [];
for (key in input) {
  if (input.hasOwnProperty(key)) {
    output[input[key].pos - 1] = input[key];
    output[input[key].pos - 1].code = key;
    delete output[input[key].pos - 1].pos;
  }
}
alert(JSON.stringify(output));
 |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 16:35
			
			
			
		 |  
	| 
		
			|  | Тлен       |  | 
					Регистрация: 02.01.2010 
						Сообщений: 6,601
					 
		
 |  |  
	| Shitbox2, ну и правильно. Оно и быстрее и логичнее.) 
				__________________ 29375, 35
 |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 16:50
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| На правах рекламы   
<html>
<head>
    <script src="http://www.collection-js.com/files/collection/collection.min.js"></script>
</head>
<body><script>
var result = $C({
   ru: {
        pos: 1,
        title: 'Русский'
   },
   en: {
       pos: 3,
       title: 'English'
   },
   de: {
       pos: 2,
       title: 'Deutsch'
   }
}).map(function (el, key) {
    return {code: key, title: el.title};
}, {initial: []});
alert(JSON.stringify(result));
</script></body>
</html>
			 Последний раз редактировалось kobezzza, 09.06.2014 в 17:18.
 |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 16:59
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| kobezzza,a pos где?
 |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 17:00
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| 
	
 
	| Сообщение от рони   |  
	| kobezzza, a pos где?
 |  
	
 Дык, ТС же написал, что ему он не нужен в элементах массива. Ну и не суть, думаю всем очевидно, как вставить туда pos  			 Последний раз редактировалось kobezzza, 09.06.2014 в 17:02.
 |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 17:06
			
			
			
		 |  
	| 
		
			|  | Тлен       |  | 
					Регистрация: 02.01.2010 
						Сообщений: 6,601
					 
		
 |  |  
	| kobezzza, ну да, сразу о том подумал.) 
				__________________ 29375, 35
 |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 17:09
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| 
	
 
	| Сообщение от kobezzza |  
	| думаю всем очевидно, как вставить туда pos |  
	
 мне непонятно - можно пример чтоб ваш код выдал тоже  
что во 2 и 3 постах? |  |  
	| 
		
	| 
			
			 
			
				09.06.2014, 17:17
			
			
			
		 |  
	| 
		
			|  | Быдлокодер;)       |  | 
					Регистрация: 19.11.2010 
						Сообщений: 4,338
					 
		
 |  |  
	| 
	
 
	| Сообщение от рони   |  
	| мне непонятно - можно пример чтоб ваш код выдал тоже что во 2 и 3 постах?
 |  
	
 Он и так выдаёт такой же результат. Сделал пример запускаемым. |  |  |  |