I have an array in the following format.
const arr = [{name:'11'},{name:'10'},{name:'9'},{name:'8'},{name:'7'}
{name:'6'},{name:'5'},{name:'4'},{name:'3'},{name:'2'},{name:'1'}
{name:'UN'},{name:'PG'},{name:'LN'},
{name:'12'},{name:'13'}]
I can sort it to get an output like below.
arr.sort((x, y)=> {
if(x.name == 'LN' || x.name=='UN' || x.name== 'PG' || (parseInt(x.name)<parseInt(y.name))) {
return -1;
}
return 0;
})
Current Output : simplified for easy visualization
[LN,PG,UN,1,2,3,4,5,6,7,8,9,10,11,12,13]
I want PG to come after UN. Should do a swap like below after sorting or can it be done in the sort function it self?
[arr[1], arr[2]] = [arr[2],arr[1]]
Expected Output : simplified for easy visualization
[LN,UN,PG,1,2,3,4,5,6,7,8,9,10,11,12,13]