const users =[
{id:3, birth:1999, name:'lee'},
{id:1, birth:2001, name:'doe'}
]
function customSort(rows, ...conds){
rows.sort((a,b)=>{
for(let i=0;i<conds.length;i++){
const cond = conds[i].split(' ');
const col = cond[0];
if (a[col]===b[col]) continue;
else {
const r =cond[1]==='desc'?-1:1;
return (a[col]-b[col])*r;
}
}
})
return 0;
}
customSort(users, 'birth desc', 'id', 'name asc');
Y29uc3QgdXNlcnMgPVsKICB7aWQ6MywgYmlydGg6MTk5OSwgbmFtZTonbGVlJ30sCiAge2lkOjEsIGJpcnRoOjIwMDEsIG5hbWU6J2RvZSd9Cl0KCmZ1bmN0aW9uIGN1c3RvbVNvcnQocm93cywgLi4uY29uZHMpewogIHJvd3Muc29ydCgoYSxiKT0+ewogICAgZm9yKGxldCBpPTA7aTxjb25kcy5sZW5ndGg7aSsrKXsKICAgICAgY29uc3QgY29uZCA9IGNvbmRzW2ldLnNwbGl0KCcgJyk7CiAgICAgIGNvbnN0IGNvbCA9IGNvbmRbMF07CiAgICAgIGlmIChhW2NvbF09PT1iW2NvbF0pIGNvbnRpbnVlOwogICAgICBlbHNlIHsKICAgICAgICBjb25zdCByID1jb25kWzFdPT09J2Rlc2MnPy0xOjE7CiAgICAgICAgcmV0dXJuIChhW2NvbF0tYltjb2xdKSpyOwogICAgICB9CiAgICB9CiAgfSkKICByZXR1cm4gMDsKfQoKY3VzdG9tU29ydCh1c2VycywgJ2JpcnRoIGRlc2MnLCAnaWQnLCAnbmFtZSBhc2MnKTsKCg==