Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите отсортировать многомерный объект! (https://javascript.ru/forum/misc/76713-pomogite-otsortirovat-mnogomernyjj-obekt.html)

Malleys 09.02.2019 13:46

Цитата:

Сообщение от AntonMs
Дело в том что желательно построить алгоритм так чтобы тот объект не менять.

А откуда у вас появляется этот объект? В JavaScript не возможно получить ключи в порядке их создания в общем случае, вы знаете какие ключи можно получить в порядке создания, по каким-то причинам не можете то применить.

Если у вас есть возможность получить исходный код для этого объекта(он у вас есть!), то можно его разобрать при помощи acorn или esprima или *ваш любимый парсер для экспериментов*... но всё-же я рекомендую вам переделать этот объект в массив или Map

(или добавьте префикс для ключей, например "_", т. е. ключ "abc123" превратится в "_abc123", это ещё один вариант)

AntonMs 11.02.2019 00:59

Кто следит за темой подскажите ещё раз :(
var a = [
{"param1" : 1, "param1" : 1, "param2": 2, "param3" : 3},
{"param1" : 11, "param2": 22, "param3" : 33},
{"param1" : 111, "param2": 222, "param3" : 333}
];
:( 
var function_array_sort = function (array_sort, sort_param){
 return array_sort.sort(function (a, b){ return a.sort_param - b.sort_param })
};

console.log( function_array_sort(a, "сюда нужно передать 'param1'") );

Malleys 11.02.2019 03:00

var a = [
	{ param1: 1,   param2: 2,   param3: 3   },
	{ param1: 11,  param2: 22,  param3: 33  },
	{ param1: 111, param2: 222, param3: 333 }
];

function functionArraySort (arraySort, sortParam){
	return arraySort.sort(function (a, b) {
		return a[sortParam] - b[sortParam];
	});
};
	
console.log(functionArraySort(a, "param1"));

AntonMs 11.02.2019 18:39

Вот честное слово, вчера делал тоже самое!:blink:


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