I have an array which looks like
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'},
I would like to sort this array to get a result
[
{ Id: '1', Value: 'Desk' },
{ Id: '3', Value: 'OT' },
{ Id: '4', Value: 'sector' },
{ Id: '2', Value: 'skool' },
{ Id: '5', Value: 'Security' },
{ Id: '6', Value: 'Zebra' }
]
I have tried doing
arr.sort((a,b) => (a.Value.toLocaleLowerCase() > b.Value.toLocaleLowerCase()) ? 1 : ((b.Value.toLocaleLowerCase() > a.Value.toLocaleLowerCase()) ? -1 : 0));
which gave me a result
[
{ Id: '1', Value: 'Desk' },
{ Id: '3', Value: 'OT' },
{ Id: '4', Value: 'sector' },
{ Id: '5', Value: 'Security' },
{ Id: '2', Value: 'skool' },
{ Id: '6', Value: 'Zebra' }
]
Difference is the order of skool and Security. I want all my lower case letters to come up first and then upper case letters. What can I try to achieve this?
toLocaleLowerCasesupposed to do?