JSFiddle - React, Tailwind, and code Playground

by doug65536

JavaScript

function makeIndex(data, getter) {
    var index = data.slice();
    index.sort(function(a,b) {
        var x = getter(a), y = getter(b);
        return x < y ? -1 : x > y ? 1 : 0;
    });
    return index;
}

var people = [
    { name: 'John', city: 'A', age: 45 },
    { name: 'Mike', city: 'D', age: 23 },
    { name: 'Jack', city: 'V', age: 16 },
    { name: 'Dave', city: 'Q', age: 33 }
];

var body = $('body');
function test(desc, getter)
{
    var index = makeIndex(people, getter);

    body.append('<h1>' + desc + '</h1>');
    for (var i = 0; i < index.length; ++i) {
        body.append(index[i].name + ' ' + index[i].city + ' ' + index[i].age + '<br>');
    }
}

test("Name", function(o) { return o.name; });
test("City", function(o) { return o.city; });
test("Age", function(o) { return o.age; });