Seřadit pole objektů podle vlastnosti pomocí sort(fn)

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!