Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.10.2017, 16:27
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Сортировка в переменной.
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);});

Последний раз редактировалось dima85, 07.10.2017 в 16:31.
Ответить с цитированием
  #2 (permalink)  
Старый 07.10.2017, 17:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от dima85
Подскажите пожалуйста от отсортировать по ключу этот список
никак, обьекты не сортируются, можно получить ключи и их отсортировать как вам угодно, потом делать выборку согласно массиву ключей.
Ответить с цитированием
  #3 (permalink)  
Старый 07.10.2017, 17:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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));
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2017, 21:27
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Понял. Подскажите а по Value сортировать этот список придется таким же вариантом или можно проще?
Ответить с цитированием
  #5 (permalink)  
Старый 07.10.2017, 21:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

dima85,
Ответить с цитированием
  #6 (permalink)  
Старый 07.10.2017, 21:58
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

src = sortObject(src);

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


Как вам такой вариант, или можно проще?
Ответить с цитированием
  #7 (permalink)  
Старый 07.10.2017, 22:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от dima85
Как вам такой вариант
Сообщение от рони
никак, обьекты не сортируются
порядок ключей в обьекте не регламентирован, да браузеры пытются сохранить порядок ключей вновь созданного обьекта, но предпочитают их выводить по алфавиту.
Ответить с цитированием
  #8 (permalink)  
Старый 07.10.2017, 22:27
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

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

const ordered = {};
     Object.keys(src).sort().forEach(function(key) {
      ordered[key] = src[key];
     });
Ответить с цитированием
  #9 (permalink)  
Старый 07.10.2017, 22:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от dima85
остановился на этом варианте:
а смысл делать копию ? для этого есть Object.assign()
Ответить с цитированием
  #10 (permalink)  
Старый 07.10.2017, 22:54
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение переменной присваивается только со второй попытки thesun Общие вопросы Javascript 9 29.01.2016 20:52
посылка переменной kent0026 jQuery 5 04.01.2014 17:34
Как значение переменной вставить в имя переменной? jsgogo Общие вопросы Javascript 3 02.06.2013 12:11
Передать значение этой переменной скрипту пхп не обновляя страницы jei Общие вопросы Javascript 10 01.03.2013 18:14
Создание переменной по значению другой переменной bahek2462774 Общие вопросы Javascript 2 09.10.2011 10:11