Ho una matrice di oggetti che ho bisogno di ordinare su una funzione personalizzata, dal momento che voglio farlo più volte su diversi attributi dell'oggetto mi piacerebbe passare il nome chiave per l'attributo dinamicamente nella funzione di ordinamento personalizzato:js sort() funzione personalizzata come posso passare più parametri?
function compareOnOneFixedKey(a, b) {
a = parseInt(a.oneFixedKey)
b = parseInt(b.oneFixedKey)
if (a < b) return -1
if (a > b) return 1
return 0
}
arrayOfObjects.sort(compareByThisKey)
dovrebbe diventato qualcosa di simile:
function compareOnKey(key, a, b) {
a = parseInt(a[key])
b = parseInt(b[key])
if (a < b) return -1
if (a > b) return 1
return 0
}
arrayOfObjects.sort(compareOn('myKey'))
si può fare in un modo conveniente? Grazie.
+1 per metodo che non sono riuscito a considerare completamente. –
Oltre al metodo è buono ha ancora problemi di compatibilità. – VisioN
@VisioN: ... ma rende molte cose più semplici :-) Per chiunque stia considerando il supporto di vecchi IE, la pagina MDN collegata contiene uno shim – Bergi