2016-07-25 16 views
0

Ich muss ein Array in aufsteigender Reihenfolge mit underscore.js sortieren. Es funktioniert fast für mich, aber Probleme, wenn Sortierung Name enthält Großbuchstaben, die Großbuchstaben Name kommt zuerst in der Sortierreihenfolge. Könnten Sie mir helfen, das zu beheben? Tahank du.Sortierung Array in aufsteigender Reihenfolge mit underscore.js

Versuchte folgende

connectors = [ 
    { 
    "name": "ajax" 
    }, 
    { 
    "name": "jquery" 
    }, 
    { 
    "name": "FGJDE" 
    } 
] 
sorted = _.sortBy(connectors, 'name'); 

Erwartete Ausgabe

connectors = [ 
    { 
    "name": "ajax" 
    }, 
    { 
    "name": "FGJDE" 
    }, 
    { 
    "name": "jquery" 
    } 
] 

Am falschen Sortierung immer wie folgt

connectors = [ 
    { 
    "name": "FGJDE" 
    }, 
    { 
    "name": "ajax" 
    }, 
    { 
    "name": "jquery" 
    } 
] 
+2

in dieser Frage Werfen Sie einen Blick über [Groß- und Kleinschreibung Sortierung in Strich] (http: // Stackoverflow. com/questions/25873635/Unterstrich-js-case-insensitive-Sortierung). –

+1

'_.sortBy (Konnektoren, o => o.name.toLowerCase());' – Tushar

Antwort

2

Sie können hier

connectors = [{ 
    "name": "ajax" 
}, { 
    "name": "jquery" 
}, { 
    "name": "FGJDE" 
}] 
sorted = _.sortBy(connectors, function (text) { return text.name.toLowerCase(); }); 
console.log(sorted); 

wie diese tun, ist die jsFiddle

1

Warum nicht String#localeCompare dafür verwenden?

var connectors = [{ "name": "ajax" }, { "name": "jquery" }, { "name": "FGJDE" }]; 
 

 
connectors.sort(function (a, b) { 
 
    return a.name.localeCompare(b.name); 
 
}); 
 

 
console.log(connectors);

Verwandte Themen