简体   繁体   English

如何在打字稿中对json对象进行排序

[英]How to sort json Object in typescript

I want to sort a json object in my angular application.我想在我的角度应用程序中对一个 json 对象进行排序。

this json object looks like this:这个 json 对象看起来像这样:

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

I just sort this json object like this:我只是像这样对这个 json 对象进行排序:

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

Does anybody know some solutions?有人知道一些解决方案吗? I have heard with underscore.js Can anybody give me some examples?我听说过 underscore.js 谁能给我一些例子吗?

Try something like that:尝试这样的事情:

Using forEach :使用forEach

 const object = { "18 - na": {"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);

using the reduce function:使用reduce功能:

 const object = { "18 - na": {"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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM