Как отсортировать объект Json в Typscript - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу отсортировать объект json в моем угловом приложении.

этот объект json выглядит так:

{"9 - ABCDEF":{"isSucceeded":true},
"18 - Remote Software Update":{"isSucceeded":true,},
"4 - n.a."{"isSucceeded":true,}}

Я просто сортирую этот объект json следующим образом:

{"4 - ABCDEF":{"isSucceeded":true},
"9 - Remote Software Update":{"isSucceeded":true,},
"18 - n.a."{"isSucceeded":true,}}

Кто-нибудь знает какие-нибудь решения? Я слышал с underscore.js Кто-нибудь может дать мне несколько примеров

С наилучшими пожеланиями,

Leo

1 Ответ

0 голосов
/ 18 апреля 2019

Попробуйте что-то подобное:

Использование forEach:

const object = {
   "18 - n.a.": {"isSucceeded":true,},
   "4 - ABCDEF": {"isSucceeded":true},
   "9 - Remote Software Update": {"isSucceeded":true,},
};
const ordered = {};
const firstNumber = str => parseInt(str.split(' -')[0].trim());
Object.keys(object)
.sort((a, b) => firstNumber(a) > firstNumber(b) ? 1 : -1)
.forEach(function(key) {
   ordered[key] = object[key];
});

console.log(ordered);

с использованием функции reduce:

const object = {
   "18 - n.a.": {"isSucceeded":true,},
   "4 - ABCDEF": {"isSucceeded":true},
   "9 - Remote Software Update": {"isSucceeded":true,},
};
const firstNumber = str => parseInt(str.split(' -')[0].trim());
const ordered = Object.keys(object)
.sort((a, b) => firstNumber(a) > firstNumber(b) ? 1 : -1)
.reduce((acc, key) => {
   acc[key] = object[key];
   return acc;
}, {});

console.log(ordered);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...