Věřte tomu nebo ne, JavaScript je víc než jen pomocné metody a třídy, které poskytují vaší JavaScriptové knihovně. Ne, jako vážně brácho; tyto metody dané JavaScriptem existují. Jedna z těchto metod, sort, je poskytována každé instanci Array prostřednictvím jejího prototypu. Použil jsem tuto metodu jednou nebo dvakrát v historii, brácho, protože se snažím zajistit správné řazení na straně serveru, ale někdy se může stát, že obdržíte výpis JSON a budete muset třídit na straně klienta.
Většina lidí by předpokládala, že řazení nebude vyžadovat žádnou metodu a jednoduše seřadí základní položky v poli:
[1, 3, 9, 2].sort(); // Returns: [1, 2, 3, 9] [1, "a", function(){}, {}, 12, "c"].sort(); // Returns: [1, 12, Object, "a", "c", function (){}]
Ale ne, brosephe! Pokud metodě řazení poskytnete výraz funkce, můžete seřadit objekty v poli pomocí jednoduché logiky. Řekněme, že máte řadu objektů představujících osoby a chcete je seřadit podle věku. Ach ano, lze to udělat a docela snadno:
[ { name: "Robin Van Persie", age: 28 }, { name: "Theo Walcott", age: 22 }, { name: "Bacary Sagna", age: 26 } ].sort(function(obj1, obj2) { // Ascending: first age less than the previous return obj1.age - obj2.age; }); // Returns: // [ // { name: "Theo Walcott", age: 22 }, // { name: "Bacary Sagna", age: 26 }, // { name: "Robin Van Persie", age: 28 } // ]
Anonymní funkce vrací, zda je stáří prvního objektu menší než stáří druhého, a tak seřadí celé pole vzestupně podle stáří. Zaměňte první a druhý argument za účelem řazení v sestupném pořadí.
Takže brochacho, teď víte, jak třídit pole objektů pomocí JavaScriptu. Pusťte se do toho!