【发布时间】:2020-07-19 17:43:13
【问题描述】:
我有一个看起来像的数组
var arr = [{'Id':'1','Value':'Desk'},
{'Id':'2','Value':'skool'},
{'Id':'3','Value':'OT'},
{'Id':'4','Value':'sector'},
{'Id':'5','Value':'Security'},
{'Id':'6','Value':'Zebra'},
我想对这个数组进行排序以获得结果
[
{ Id: '1', Value: 'Desk' },
{ Id: '3', Value: 'OT' },
{ Id: '4', Value: 'sector' },
{ Id: '2', Value: 'skool' },
{ Id: '5', Value: 'Security' },
{ Id: '6', Value: 'Zebra' }
]
我试过了
arr.sort((a,b) => (a.Value.toLocaleLowerCase() > b.Value.toLocaleLowerCase()) ? 1 : ((b.Value.toLocaleLowerCase() > a.Value.toLocaleLowerCase()) ? -1 : 0));
这给了我一个结果
[
{ Id: '1', Value: 'Desk' },
{ Id: '3', Value: 'OT' },
{ Id: '4', Value: 'sector' },
{ Id: '5', Value: 'Security' },
{ Id: '2', Value: 'skool' },
{ Id: '6', Value: 'Zebra' }
]
区别是skool 和Security 的顺序。我希望我所有的小写字母先出现,然后是大写字母。我可以尝试什么来实现这一目标?
【问题讨论】:
-
toLocaleLowerCase应该做什么? -
它看起来像stackoverflow.com/questions/62316839/…(嗯,在答案中你有 parentId,这里有,如果 Value[0] 是小写,则 parentId=Value[0].toUpperCase() 否则为 null)
标签: javascript angular typescript sorting