How to sort an array of object by a specific field Javascript
I have an array containing multiple objects with multiple fields, and I'm trying to sort the array in decending order from the largest "Views" value to the lowest. but when I run my code it outputs a few in order, but the majority are random. There are a lot more array rows in my project if that could be affecting it.
list = [{title: "Test1", views: "25"}, {title: "Test2", "105"}, {title: "Test3", views: "12"}]
var len = list.length - 1;
list.sort(function (a, b) {
return a.views.localeCompare(b.views) || b.views - a.views;
});
for(var x = 0; x < len; x++) {
displayFunc(list[x].title, list[x].views);
}
Desired output:
{title: "Test2", views: "105"}, {title: "Test1", "25"}, {title: "Test3", views: "12"}
As mentioned in the comments, you dont need a localecompare here:
const list = [{title: "Test1", views: "25"}, {title: "Test2", views: "105"}, {title: "Test3", views: "12"}]
console.log(list.sort((a,b)=>{
return b.views - a.views
}));