Array von benutzerdefinierten Objekten in JavaScript sortieren

Angenommen, ich habe eine Reihe von Mitarbeiterobjekten:

var Employee = function(fname, age) {
    this.fname = fname;
    this.age = age;
}

var employees = [
    new Employee("Jack", "32"),
    new Employee("Dave", "31"),
    new Employee("Rick", "35"),
    new Employee("Anna", "33")
];


An diesem Punkt,employees.sort() bedeutet nichts, da der Interpreter nicht weiß, wie diese benutzerdefinierten Objekte sortiert werden. Also übergebe ich meine benutzerdefinierte Sortierfunktion.

employees.sort(function(employee1, employee2){
    return employee1.age > employee2.age;
});


Jetztemployees.sort() arbeitet dandy.

Aber was ist, wenn ich auch steuern möchte, nach welchem ​​Feld sortiert werden soll, und es dann zur Laufzeit irgendwie weitergeben möchte? Kann ich so etwas machen?

employees.sort(function(employee1, employee2, on){
    if(on === 'age') {
        return employee1.age > employee2.age;
    }
    return employee1.fname > employee2.fname;
});

Ich kann es nicht zum Laufen bringen, also Vorschläge? Design Pattern Based Refactoring vielleicht?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage