如何在javascript或typescript中按键对数组排序,但键是否按字母顺序排序?
我有这个数组如何在javascript或typescript中按键对数组排序,但键是否按字母顺序排序?,javascript,arrays,typescript,Javascript,Arrays,Typescript,我有这个数组 [ { "Books": [], "_id": "5dea9a11a8e1bf301c462ce4", "FileName": "AAAAA", "Order": 99999 }, { "_id": "5dea9864a8e1bf301c462cdb", "Books": [], "FileName": "some1", "Order": 3 }, { "Books": [],
[
{
"Books": [],
"_id": "5dea9a11a8e1bf301c462ce4",
"FileName": "AAAAA",
"Order": 99999
},
{
"_id": "5dea9864a8e1bf301c462cdb",
"Books": [],
"FileName": "some1",
"Order": 3
},
{
"Books": [],
"_id": "5dea9873a8e1bf301c462ce1",
"FileName": "among3",
"Order": 3
},
{
"Books": [],
"_id": "5dea986ba8e1bf301c462cde",
"FileName": "things2",
"Order": 2
},
{
"Books": [],
"_id": "5dea9a18a8e1bf301c462ce7",
"FileName": "FFFF",
"Order": 99999
},
{
"Books": [],
"_id": "5dea9a1ea8e1bf301c462cea",
"FileName": "BBBB",
"Order": 99999
}
]
现在我想按顺序对数组排序,若顺序相同,那个么按文件名的字母顺序排序。
因此,排序数组将如下所示:
[
{
"Books": [],
"_id": "5dea986ba8e1bf301c462cde",
"FileName": "things2",
"Order": 2
},
{
"Books": [],
"_id": "5dea9873a8e1bf301c462ce1",
"FileName": "among3",
"Order": 3
},
{
"_id": "5dea9864a8e1bf301c462cdb",
"Books": [],
"FileName": "some1",
"Order": 3
},
{
"Books": [],
"_id": "5dea9a11a8e1bf301c462ce4",
"FileName": "AAAAA",
"Order": 99999
},
{
"Books": [],
"_id": "5dea9a1ea8e1bf301c462cea",
"FileName": "BBBB",
"Order": 99999
},
{
"Books": [],
"_id": "5dea9a18a8e1bf301c462ce7",
"FileName": "FFFF",
"Order": 99999
},
]
我能够在两个以上的循环中完成它,但不确定这有多优化。寻找任何优化的解决方案。带接口比较器的纯javascript或Typescript也可以工作,谢谢。这里,测试顺序,然后是字符串 常量数据=[ { 书籍:[], _id:5dea9a11a8e1bf301c462ce4, 文件名:AAAAA, 订单:99999 }, { _id:5dea9864a8e1bf301c462cdb, 书籍:[], 文件名:some1, 订单:3 }, { 书籍:[], _id:5dea9873a8e1bf301c462ce1, 文件名:among3, 订单:3 }, { 书籍:[], _id:5DEA986BA8E1BF301C462Code, 文件名:things2, 订单:2 }, { 书籍:[], _id:5dea9a18a8e1bf301c462ce7, 文件名:FFFF, 订单:99999 }, { 书籍:[], _id:5dea9a1ea8e1bf301c462cea, 文件名:BBBB, 订单:99999 } ]; 常数sortDelegate=a,b=>{ 常数o=a.顺序-b.顺序; ifo==0{ 返回a.FileName.localeCompareb.FileName; } 返回o; }; console.logdata.sortsortDelegate;