Skip to content

Instantly share code, notes, and snippets.

@mykeels
Last active August 25, 2017 15:31
Show Gist options
  • Select an option

  • Save mykeels/e40b9e7c91a6264da7359a417dd52430 to your computer and use it in GitHub Desktop.

Select an option

Save mykeels/e40b9e7c91a6264da7359a417dd52430 to your computer and use it in GitHub Desktop.
A Simple Sort challenge

Write a program in any language of your choice that has a function that sorts the json data by Name in alphabetical order and Age and returns the result.

E.g.

  function sortData(arr) {
    // ... do stuff to sort the array
    return arr;
  }
[
{
"name": "Bisi",
"Age": 14,
"Gender": "Female"
},
{
"name": "John",
"Age": 11,
"Gender": "Male"
},
{
"name": "Ade",
"Age": 16,
"Gender": "Male"
},
{
"name": "Kemi",
"Age": 12,
"Gender": "Female"
},
{
"name": "Tunde",
"Age": 12,
"Gender": "Male"
},
{
"name": "Dantelex",
"Age": 13,
"Gender": "Male"
},
{
"name": "Seunsaber",
"Age": 12,
"Gender": "Male"
},
{
"name": "Chilas",
"Age": 14,
"Gender": "Male"
},
{
"name": "Mykeels",
"Age": 10,
"Gender": "Male"
},
{
"name": "Kesfun",
"Age": 15,
"Gender": "Female"
},
{
"name": "Moshood",
"Age": 17,
"Gender": "Male"
},
{
"name": "Justice",
"Age": 15,
"Gender": "Male"
},
{
"name": "Ayo",
"Age": 16,
"Gender": "Male"
}
]
@seunfapps
Copy link

function sortData (arr){
    for(var i = 0; i < arr.length; i++){
        for(var j = 0; j < arr.length - 1; j++){
             if(compare(arr[j],arr[j + 1])){
                var temp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = temp;
             }
        }
    }
    return arr;
}
function compare(a,b){
    var swap = false;
    if(a.name < b.name || a.age < b.age){
        swap = false;
    }else if(a.name > b.name || a.age > b.age){
       swap = true;
    }else{
        swap = false;
    }
    return swap;
}

@seunfapps
Copy link

Good old Bubble Sort.

@mykeels
Copy link
Author

mykeels commented Aug 25, 2017

Expected Results

[
{"name":"Ade","Age":16,"Gender":"Male"},
{"name":"Ayo","Age":16,"Gender":"Male"},
{"name":"John","Age":11,"Gender":"Male"},
{"name":"Bisi","Age":14,"Gender":"Female"},
{"name":"Chilas","Age":14,"Gender":"Male"},
{"name":"Kemi","Age":12,"Gender":"Female"},
{"name":"Dantelex","Age":13,"Gender":"Male"},
{"name":"Justice","Age":15,"Gender":"Male"},
{"name":"Kesfun","Age":15,"Gender":"Female"},
{"name":"Moshood","Age":17,"Gender":"Male"},
{"name":"Mykeels","Age":10,"Gender":"Male"},
{"name":"Seunsaber","Age":12,"Gender":"Male"},
{"name":"Tunde","Age":12,"Gender":"Male"}]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment