So I have an array of object which looks like this:
var myArray = [{priority : "low"}, {priority: "critical"}, {priority: "high"}]
I need to sort in this way: 1)Critical, 2) High and 3) Low.
how can this be done?
I suggest to use an object for the storing of the sort order.
If you need a default value for sorting, you could use a value for sorting unknown priority to start or to the end.
var sort = ['critical', 'high', 'low'],
defaultValue = Infinity,
sortObj = {},
myArray = [{ priority: "unknown" }, { priority: "low" }, { priority: "critical" }, { priority: "high" }];
sort.forEach(function (a, i) { sortObj[a] = i + 1; });
myArray.sort(function (a, b) {
return (sortObj[a.priority] || defaultValue) - (sortObj[b.priority] || defaultValue);
});
console.log(myArray);
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments