2015-09-14 26 views
11

Vorrei ordinare immutable.js orderedlist dalla proprietà name,Ricerca per ordine alfabetico immutable.js

data.map(x => x.get("name")) restituisce la stringa, voglio ordinare la mia mappa per nome in ordine alfabetico.

Come fare? Ho provato:

return data.sortBy((val) => { 
    if (dir === "up") { 
     return val.get("name"); 
    } else { 
     return - val.get("name"); 
    } 
    }); 
+3

Nel caso qualcuno mai finisce qui in cerca di un modo per ordinare un elenco o una mappa con il tasto, ecco come: 'mapOrList.sortBy ((val, key) => tasto) ' – SudoPlz

risposta

19
var fiends = Immutable.fromJS([{name: 'Squirrel'}, {name: 'Cat'}, {name: 'Raccoon'}]); 
var sorted = fiends.sort(
    (a, b) => a.get('name').localeCompare(b.get('name')) 
); 
sorted.map(x => x.get('name')).toJS(); // ["Cat", "Raccoon", "Squirrel"] 
+11

animali diabolici! –

+0

è un ordinamento sincrono? – SudoPlz

+0

Penso di sì? https://github.com/facebook/immutable-js/blob/07529615461da9eb426aa59d09bdd38ebf3624cd/src/Operations.js#L734-L756 – luqmaan

Problemi correlati