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

问题描述 投票:0回答:1

在我的角度应用中的黑色和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可以有人给我一些例子

最好的祝福,

狮子座

json angular sorting
1个回答
0
投票

尝试类似的东西:

使用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);
© www.soinside.com 2019 - 2024. All rights reserved.