2014-06-11 18 views
5

Ich habe das folgende Array in JavaScript, ich muss sie nach Nachnamen sortieren.Javascript Array Sortieren nach Nachname, Vorname

var names = [Jenny Craig, John H Newman, Kelly Young, Bob]; 

Ergebnisse seien:

Bob, 
Jenny Craig, 
John H Newman, 
Kelly Young 

Alle Beispiele auf, wie dies zu tun?

+1

Möchten Sie sie alphabetisch sortieren oder einfach nur die ohne Nachnamen angeben? –

+1

[Ist 'Bob' ein Vor- oder Nachname? Gehört das 'H' zum Vor- oder Nachnamen?] (Http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) – Bergi

+0

Amir Antwort funktionierte für mich. –

Antwort

6

Try this:

function compare(a, b) { 
    var splitA = a.split(" "); 
    var splitB = b.split(" "); 
    var lastA = splitA[splitA.length - 1]; 
    var lastB = splitB[splitB.length - 1]; 

    if (lastA < lastB) return -1; 
    if (lastA > lastB) return 1; 
    return 0; 
} 

var names = ["John H Newman", "Jenny Craig", "Kelly Young", "Bob"]; 
var sorted = names.sort(compare); 
console.log(sorted); 

hier ein Fiddle ist.

+0

Das hat funktioniert, jetzt muss ich es wiederholen und die Ergebnisse in einem UI anzeigen. :) –

0
function lastNameSort(a,b) { 
    return a.split(" ").pop()[0] > b.split(" ").pop()[0] 
}; 
names.sort(lastNameSort); 

Dies wurde von this answer inspiriert.

Verwandte Themen