Well, I have an array objects with random values, Ex.
var value = [
{"date":"06/11/2017","status":"B"},
{"date":"06/11/2017","status":"B"},
{"date":"15/05/2017","status":"R"},
{"date":"15/05/2017","status":"R"},
{"date":"14/05/2018","status":"R"},
{"date":"05/05/2017","status":"R"},
{"date":null,"status":"W"},
{"date":null,"status":"W"},
{"date":null,"status":"W"},
{"date":"05/11/2017","status":"B"},
{"date":"27/07/2017","status":"R"},
{"date":"14/05/2018","status":"R"},
{"date":"27/07/201","status":"R"},
{"date":"14/05/2018","status":"R"},
{"date":"26/02/2018","status":"R"},
{"date":null,"status":"W"}
];
I wanted to sort this array firstly by key status
& then by key date
as,
Output:
var result = [
{"date":"05/11/2017","status":"B"},
{"date":"06/11/2017","status":"B"},
{"date":"06/11/2017","status":"B"},
{"date":"05/05/2017","status":"R"},
{"date":"15/05/2017","status":"R"},
{"date":"15/05/2017","status":"R"},
{"date":"27/07/2017","status":"R"},
{"date":"14/05/2018","status":"R"},
{"date":"14/05/2018","status":"R"},
{"date":"14/05/2018","status":"R"},
{"date":"26/02/2018","status":"R"},
{"date":"27/07/2018","status":"R"},
{"date":null,"status":"W"},
{"date":null,"status":"W"},
{"date":null,"status":"W"},
{"date":null,"status":"W"}
];
/*I tried few generic code to sort, */
var result = value.sort(function (a, b) {
var aValue = (a.date) ? a.date: 0;
var bValue = (b.date) ? b.date: 0;
return a.status - b.status || aValue - bValue;
});
I referred few examples SO Example but not getting expected output. Please suggest me best way to get this.