Javascript 尝试将对象数组按键(名称)的降序排序,并希望在vuejs中首先显示大写字母的数据
我试图根据一个键(名称)对一个对象数组进行排序,我希望首先显示大写的数据,但它首先返回小写的数据。 我使用的是lodash方法orderby 检索到的数组是:Javascript 尝试将对象数组按键(名称)的降序排序,并希望在vuejs中首先显示大写字母的数据,javascript,sorting,vuejs2,lodash,Javascript,Sorting,Vuejs2,Lodash,我试图根据一个键(名称)对一个对象数组进行排序,我希望首先显示大写的数据,但它首先返回小写的数据。 我使用的是lodash方法orderby 检索到的数组是: data = [ { "id":"00000000-0000-0000-0000-000000100000", "name":"DAS_Name_1", "layer":"Raw", "securityClass":"Green", "domainName":null,
data = [
{
"id":"00000000-0000-0000-0000-000000100000",
"name":"DAS_Name_1",
"layer":"Raw",
"securityClass":"Green",
"domainName":null,
"domainId":null,
"isActive":true,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_1",
"createdById":"User_Id_1"
},
{
"id":"00000000-0000-0000-0000-000000100009",
"name":"u_123",
"layer":"Standardized",
"securityClass":"Green",
"domainName":null,
"domainId":null,
"isActive":true,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_10",
"createdById":"User_Id_10"
},
{
"id":"00000000-0000-0000-0000-000000100099",
"name":"Velvetica-123",
"layer":"Standardized",
"securityClass":"Red",
"domainName":null,
"domainId":null,
"isActive":false,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_20",
"createdById":"User_Id_20"
},
{
"id":"00000000-0000-0000-0000-000000100100",
"name":"test_run-2",
"layer":"Data_Products",
"securityClass":"Green",
"domainName":null,
"domainId":null,
"isActive":true,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_1",
"createdById":"User_Id_1"
}
]
当我使用lodash方法对数据数组进行排序时:
data = _.orderBy(data, ["name"], ["desc"]);
但我得到的结果如下:
data = [
{
"id":"00000000-0000-0000-0000-000000100000",
"name":"test_run-2",
"layer":"Raw",
"securityClass":"Green",
"domainName":null,
"domainId":null,
"isActive":true,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_1",
"createdById":"User_Id_1"
},
{
"id":"00000000-0000-0000-0000-000000100009",
"name":"u_123 ",
"layer":"Standardized",
"securityClass":"Green",
"domainName":null,
"domainId":null,
"isActive":true,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_10",
"createdById":"User_Id_10"
},
{
"id":"00000000-0000-0000-0000-000000100099",
"name":"Velvetica-123",
"layer":"Standardized",
"securityClass":"Red",
"domainName":null,
"domainId":null,
"isActive":false,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_20",
"createdById":"User_Id_20"
},
{
"id":"00000000-0000-0000-0000-000000100100",
"name":"DAS_Name_1 ",
"layer":"Data_Products",
"securityClass":"Green",
"domainName":null,
"domainId":null,
"isActive":true,
"isLocked":true,
"creationDate":"2019-10-09T23:12:34Z",
"createdByName":"DAS_Actor_User_Name_1",
"createdById":"User_Id_1"
}
]
这是不正确的。有人能建议在这里做什么吗?在Javascript中,使用
比较字符串是区分大小写的,这意味着您可以简单地使用Javascript的本机数组。sort()
函数:
data.sort(函数(a,b){
if(ab){
返回1
}
返回0
})
一个简单的升序排序会处理它
因为“A”的ASCII值为65,而“A”的ASCII值为97
因此,一个简单的升序排序将能够将所有资本化的值聚集到数组的顶部
试过了
希望这有帮助 请编辑您的问题
data.sort(function(a, b) {
if (a < b) {
return -1
}
if (a > b) {
return 1
}
return 0
})