Here's what I'm trying to output:
[ { name: 'harry', age: '21' },
{ name: 'john', age: '23' },
{ name: 'jack', age: '25' } ]
but I'm getting this:
[ { name: 'john', age: '23' },
{ name: 'harry', age: '21' },
{ name: 'jack', age: '25' } ]
Here's my code:
var persons = [
{
"name": "john",
"age": "23"
},
{
"name": "harry",
"age": "21"
},
{
"name": "jack",
"age": "25"
}
];
function selectionSortObjects (arr){
var length = arr.length;
for(var i = 0; i < length; i++){
var min = [i].age;
for(var j = i+1; j < length; j++) {
if(arr [j].age > arr[min]){
min = [j].age;
}
}
if (min != i.age) {
var k = arr[i].age;
arr[i].age = arr[min];
arr[min] = k;
}
}
return arr;
}
console.log(selectionSortObjects(persons));
// console.log(persons[0].age);
What am I doing wrong? Because I'm getting no errors, but I'm getting the wrong output. I'm trying to sort the result by age doing the selection sort algorithm.
Array.prototype.sortand pass in a comparator function which does e.g.return b.age - a.age;