javascript - Modifying the following sort function so it returns numbers -


the following function following:

1) if isdefault === true , isdefault === false, former goes first.

2) if isdefault === true , isdefault === true, sort updatedat in descending fashion.

3) if isdefault === false , isdefault === false, sort name in ascending fashion.

function sortpanoramas (panoramas) {   panoramas.sort((a, b) => {     if (a.isdefault !== b.isdefault) return a.isdefault < b.isdefault     if (a.isdefault && b.isdefault) return a.updatedat < b.updatedat     if (!a.isdefault && !b.isdefault) return a.name > b.name   }) } 

this works in chrome not in safari, because told you're supposed return numbers in sort functions.

how modify function return numbers?

edit: sample data:

[   {     "id": "cbu2z5bz9w",     "name": "a01",     "updatedat": "2016-08-24t06:20:47.972z",     "isdefault": true,     "index": 0   },   {     "id": "rdt5cvglrg",     "name": "a02",     "updatedat": "2016-08-24t06:21:22.126z",     "isdefault": false,     "index": 1   },   {     "id": "ehyt1tycbn",     "name": "a03",     "updatedat": "2016-08-24t06:21:47.404z",     "isdefault": false,     "index": 2   },   {     "id": "jutmyn2tdr",     "name": "a04",     "updatedat": "2016-08-24t06:26:29.591z",     "isdefault": false,     "index": 3   },   {     "id": "vgxxncbmch",     "name": "a05",     "updatedat": "2016-08-24t06:27:12.934z",     "isdefault": false,     "index": 4   } ] 

i think need:

function sortpanoramas(panoramas) {   panoramas.sort((a, b) => {     if (a.isdefault !== b.isdefault) {       return a.isdefault ? -1 : 1;     }     if (a.isdefault && b.isdefault) {       return a.updatedat > b.updatedat ? -1 : a.updatedat < b.updatedat ? 1 : 0;     }     return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;   }); } 

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

python 3.5 - Pyqtgraph string in x tick -