Ecmascript 6 lodash:按一个键进行主排序,按另一个键进行次排序

Ecmascript 6 lodash:按一个键进行主排序,按另一个键进行次排序,ecmascript-6,lodash,Ecmascript 6,Lodash,我有以下格式的数据。我目前正在使用orderBy按特定的“数字”键进行排序。我正在寻找一种通过另一个键“name”进行二级访问的方法 您可以使用: const arr=[ {编号:123,名称:“b”}, {编号:123,名称:“a”}, {编号:122,名称:“br”}, {编号:124,名称:“bR”}, {编号:124,名称:“Br”} ]; console.log( _.orderBy(arr,e=>[e.number,e.name.toLowerCase()/*不区分大小写*/] )

我有以下格式的数据。我目前正在使用orderBy按特定的“数字”键进行排序。我正在寻找一种通过另一个键“name”进行二级访问的方法

您可以使用:

const arr=[
{编号:123,名称:“b”},
{编号:123,名称:“a”},
{编号:122,名称:“br”},
{编号:124,名称:“bR”},
{编号:124,名称:“Br”}
];
console.log(
_.orderBy(arr,e=>[e.number,e.name.toLowerCase()/*不区分大小写*/]
);
常数arr2=[
{编号:121,名称:“c”},
{编号:122,名称:“b”},
{编号:123,名称:“a”}
];
console.log(
_.orderBy(arr2,e=>e.number/*降序*/,'desc')
);

非常感谢。我只是想知道,有没有一种方法可以为这些列指定asc和desc,也可以为字段指定不区分大小写的。不区分大小写很简单(
e=>[…,e.name.toLowerCase()]
),降序更难,这取决于:您的数字可以在什么范围内?我想知道这是否有效[…,e.name.toLowerCase()],['asc','desc'])我不这么认为,但在我的答案中添加了一个使用MAX\u SAFE\u INTEGER的解决方案。如果数字可以是浮点数,那就不太好了谢谢你的输入。我已经用这种格式编写了代码,但它没有按预期工作。我在我的应用程序中使用剑道网格。我根据用户单击的列进行主排序,并根据扩展名进行二级排序。我从这个.sort[0]中获取主排序列名和目录。如果用户单击扩展列,可能会出现主排序列和次排序列相同的情况。我想问题可能就是因为这个。this.phonesData=sortBy(this.phonesData[this.sort[0]。字段,'extension'],[this.sort[0]。dir,'asc']);
[
{
  "number": "123",
  "name": "a"
},
{
  "number": "123",
  "name": "b"
},
{
  "number": "123",
  "name": "br"
}
]