2014-06-11 26 views
5

Aşağıdaki diziyi JavaScript olarak kullanıyorum, onları soyadı ile sıralamalıyım.Javascript Dizi adı, soyadı, adı

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

Sonuçlar şöyle olacaktır: Bu nasıl yapılacağına ilişkin

Bob, 
Jenny Craig, 
John H Newman, 
Kelly Young 

Herhangi örnekler?

+1

Alfabetik olarak sıralamak mı yoksa sadece soyadlarını olmayanları koymak mı istiyorsunuz? –

+1

[Bob'un adı bir soyadı mı? 'H' ilk ya da soyadı mı?] (Http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) – Bergi

+0

Amir cevap benim için çalıştı. –

cevap

6

bu deneyin:

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); 

İşte Fiddle bu.

+0

Bu işe yaradı, şimdi onu döngü ve sonuçları bir ui'de göstermeliyim. :) –

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

Bu, this answer'dan esinlenmiştir.