How to get objects with the same property and has the maximum value in the array I have data such as
data = [{title: "test1", version: 1}, {title: "test2", version: 3}, {title: "test1", version: 2}, {title: "test2", version: 2}, {title: "test2", version: 1}];
And I want to get the result
result = [{title: "test1", version: 2}, {title: "test2", version: 3}];
Are there any better ways than what I did here?
var titles = [...new Set(data.map(o=> o.title))]; var recentVersions = []; for(var i = 0; i < titles.length; i++){ var recentVersion = null; for(var j = 0; j < data.length; j++){ if(titles[i] === data[j].title){ if(!recentVersion){ recentVersion = data[j]; }else if (recentVersion.version < data[j].version){ recentVersion = data[j]; } } } recentVersions.push(recentVersion); }
source share