@Grizzy

Как отсортировать свойства объекта?

{
     "Pepper": "Перец",
     "Dill": "Укроп",
     "Tomato": "Томат"
}

Должно стать.
{
    "Dill": "Укроп",
    "Pepper": "Перец",
    "Tomato": "Томат"
}
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
Никак.
Если вам нужны упорядоченные коллекции -используйте массивы объектов.
var collection = [
 { 
    key: "Pepper",
    value: "Перец"
},
{ 
    key: "Dill",
    value: "Укроп"
},
{ 
    key: "Tomato",
    value: "Томат"
}
]

Для такой коллекции можно написать что-то такое:
collection.sort( sortFunction);
function sortFunction(a,b) {
if (a.key > b.key) {
    return 1;
  }
  if (a.key < b.key) {
    return -1;
  }
  // a должно быть равным b
  return 0;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
brusher
@brusher
Фронт-енд разработчик
Получить массив ключей -> отсортировать массив -> засунуть данные ключ-значение в новый объект, в соответствии с массивом.
var unsortedObject = {
     "Pepper": "Перец",
     "Dill": "Укроп",
     "Tomato": "Томат"
};
var sortedObject = sortObject(unsortedObject);

function sortObject(obj) {
 var keys = Object.keys(obj);
 var result = {};
 keys.sort();
 for(var i = 0; i<keys.length; i++) {
   result[keys[i]] = obj[keys[i]];
 }
 return result;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы