Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как вывести свойства объекта в заданном порядке (https://javascript.ru/forum/jquery/43442-kak-vyvesti-svojjstva-obekta-v-zadannom-poryadke.html)

mi.rafaylik 05.12.2013 13:04

Как вывести свойства объекта в заданном порядке
 
Есть объект labels со свойствами (не по алфавиту, это важно).
И есть объект print, в котором указаны только некоторые свойства, которые есть в labels.
Нужно вывести эквиваленты print, найденные в labels, но в том же порядке что и в labels. Сейчас выводится порядок свойств print.
То есть нужно не city,name а name,city. Какие мысли?
var labels = {
	post: 'Batman',
	name: 'Bruce Wayne',
	city: 'Gotham'
},
print = {
	city: '...',
	name: '...'
};
for (var key in print) {
	$('#print').append('<p><b>'+key+'</b>: '+labels[key]+'</p>');
};

Посмотреть

ksa 05.12.2013 13:11

Цитата:

Сообщение от mi.rafaylik
Какие мысли?

Крутить цикл таки по labels... Смотреть есть ли такое в print... Если есть - выводить.

mi.rafaylik 05.12.2013 13:17

Спасибо за ответ.
Тоже об этом думал, но надеялся найдётся проще способ.

ksa 05.12.2013 13:18

Цитата:

Сообщение от mi.rafaylik
найдётся проще способ

Как вариант просто крутнуть цикл по, заранее определенным, свойствам, которые записаны в тот же массив...

mi.rafaylik 05.12.2013 15:13

Так получилось:
Посмотреть
var labels = {
	post: 'Batman',
	name: 'Bruce Wayne',
	city: 'Gotham'
},
print = {
	city: '...',
	name: '...'
};
for (var key in labels) {
	if (print[key]) $('#print').append('<p><b>'+key+'</b>: '+labels[key]+'</p>');
};


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