I have an array like this:
var planets_info = [
{
"name": "Mercury",
"size": 120,
"color": "gray",
},
{
"name": "Earth",
"size": 100,
"color": "blue",
},
{
"name": "Mars",
"size": 200,
"color": "red",
}
];
That I am trying to sort based on name and size or color. This is defined like this:
var sorts = "size,name"; // or size, name, color dynamic value
I can do sorting like this:
planets_info = planets_info.sort( function(a, b){
return a.size - b.size || a.color - b.color;
// or
// return a.size - b.size || a.color - b.color || a.name - b.name;
// or
// a.color - b.color || a.name - b.name;
});
But I dont know how to modify the sort so it sorts based on the values from var sorts
- so a.size - b.size || a.color - b.color;
will be dynamic based on the values from sorts
- it can be based on name,size
or name,size,color
which will be added by ||
:
var sorts = "size,name";
sorts = sorts.split(',');
sorts.forEach(element=> {
console.log("sort " + element);
});