zpět k lekci

Řazení podle vlastnosti

důležitost: 5

Máme pole objektů, které chceme seřadit:

let uživatelé = [
  { jméno: "Jan", věk: 20, příjmení: "Janík" },
  { jméno: "Petr", věk: 18, příjmení: "Petřík" },
  { jméno: "Anna", věk: 19, příjmení: "Hadrabová" }
];

Obvyklý způsob, jak to udělat, by byl:

// podle jména (Anna, Jan, Petr)
uživatelé.sort((a, b) => a.jméno > b.jméno ? 1 : -1);

// podle věku (Petr, Anna, Jan)
uživatelé.sort((a, b) => a.věk > b.věk ? 1 : -1);

Můžeme to učinit ještě stručněji, například takto?

uživatelé.sort(podleVlastnosti('jméno'));
uživatelé.sort(podleVlastnosti('věk'));

Místo psaní funkce tedy jednoduše napíšeme podleVlastnosti(názevVlastnosti).

Napište funkci podleVlastnosti, kterou k tomu můžeme použít.

Otevřít pískoviště s testy.

function podleVlastnosti(názevVlastnosti){
  return (a, b) => a[názevVlastnosti] > b[názevVlastnosti] ? 1 : -1;
}

Otevřít řešení s testy na pískovišti.