Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сортировка в переменной. (https://javascript.ru/forum/dom-window/70857-sortirovka-v-peremennojj.html)

dima85 07.10.2017 16:27

Сортировка в переменной.
 
src = [{"sdf":"13242","sdfse":"443","sdfdssd":"567","dfsf":"454561","fefds"
:"6435","sdfdsde3":"3453"}]


Подскажите пожалуйста от отсортировать по ключу этот список, в нем нет повторяющихся ключей.

Пробовал как-то так, не получается:

src.sort(function(a,b){return (a.Object.keys < b.Object.keys) ? 1 : ((b.Object.keys < a.Object.keys) ? -1 : 0);});

рони 07.10.2017 17:09

Цитата:

Сообщение от dima85
Подскажите пожалуйста от отсортировать по ключу этот список

никак, обьекты не сортируются, можно получить ключи и их отсортировать как вам угодно, потом делать выборку согласно массиву ключей.

рони 07.10.2017 17:18

dima85,
выборка ключей по возрастанию
var src = [{"sdf":"13242","sdfse":"443","sdfdssd":"567","dfsf":"454561","fefds":"6435","sdfdsde3":"3453"}];
var src_key = src.map(function(a) {
return Object.keys(a).sort(function(n,k) {
   return a[n] - a[k]
})
});
alert(JSON.stringify(src_key));

dima85 07.10.2017 21:27

Понял. Подскажите а по Value сортировать этот список придется таким же вариантом или можно проще?

рони 07.10.2017 21:37

dima85,
:-?

dima85 07.10.2017 21:58

src = sortObject(src);

   function sortObject(obj) {
    return Object.keys(obj)
     .sort().reduce((a, v) => {
     a[v] = obj[v];
     return a; }, {});
   }


Как вам такой вариант, или можно проще?

рони 07.10.2017 22:06

Цитата:

Сообщение от dima85
Как вам такой вариант

Цитата:

Сообщение от рони
никак, обьекты не сортируются

порядок ключей в обьекте не регламентирован, да браузеры пытются сохранить порядок ключей вновь созданного обьекта, но предпочитают их выводить по алфавиту.

dima85 07.10.2017 22:27

Вы правы, остановился на этом варианте:

const ordered = {};
     Object.keys(src).sort().forEach(function(key) {
      ordered[key] = src[key];
     });

рони 07.10.2017 22:38

Цитата:

Сообщение от dima85
остановился на этом варианте:

а смысл делать копию ? для этого есть Object.assign()

dima85 07.10.2017 22:54

Мне сложно отследить сортирует он или нет. Насколько я понимаю и вижу последний мой вариант сортирует по keys. Или я не прав?


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