У меня есть объект стран, который состоит из ключа с аббревиатурой страны, за которым следует объект с его идентификатором, именем и значением по умолчанию.Сортировка объекта Javascript по значению свойства
Если бы я хотел сортировать объект по названию страны, что мне делать?
var countries= {
AD: { id: 'AD', name: 'Andorra', defaultCurrency: 'EUR' },
AE: { id: 'AE', name: 'United Arab Emirates', defaultCurrency: 'AED' },
BT: { id: 'BT', name: 'Bhutan', defaultCurrency: 'USD' },
BW: { id: 'BW', name: 'Botswana', defaultCurrency: 'USD' },
BZ: { id: 'BZ', name: 'Belize', defaultCurrency: 'BZD' },
CA: { id: 'CA', name: 'Canada', defaultCurrency: 'CAD' },
CC: { id: 'CC', name: 'Cocos (Keeling) Islands', defaultCurency: 'XAF' },
CH: { id: 'CH', name: 'Switzerland', defaultCurrency: 'CHF' },
CI: { id: 'CI', name: 'Côte d\'Ivoire', defaultCurrency: 'USD' },
CK: { id: 'CK', name: 'Cook Islands', defaultCurrency: 'NZD' },
}
Я попытался преобразовать его в массив с помощью следующей функции, но это оставляет меня с [объект] с каждым ключом
var arr = [];
for (var key in countries) {
if (countries.hasOwnProperty(key)) {
arr.push(key + '=' + countries[key]);
}
};
Обратите внимание, что я не могу просто применить сортировку с использованием массива, и нужно сначала преобразовать весь объект в массив, а затем преобразовать обратно в объект.
FYI, точка с запятой после '}' из цикла не имеет смысла - это было бы лучше поместить после '}' 'из стран вара = {...} ' – ThiefMaster
Возможный дубликат [Сортировка массива объектов JavaScript] (http://stackoverflow.com/questions/979256/sorting-an-array-of-javascript-objects) – rambossa
Как это дубликат? Я выполнил свою должную осмотрительность и выполнил поиск в stackoverflow, прочитал этот вопрос раньше, и это не решило мою проблему. Этот вопрос включает массив. Mine - это объект с ключевыми значениями и объектами, вложенными в ... – alchuang