我在JavaScript中有下面的數組,我需要按姓氏排序。Javascript Array按姓氏排序
var names = [Jenny Craig, John H Newman, Kelly Young, Bob];
結果將是:
Bob,
Jenny Craig,
John H Newman,
Kelly Young
如何做到這一點的例子?
我在JavaScript中有下面的數組,我需要按姓氏排序。Javascript Array按姓氏排序
var names = [Jenny Craig, John H Newman, Kelly Young, Bob];
結果將是:
Bob,
Jenny Craig,
John H Newman,
Kelly Young
如何做到這一點的例子?
試試這個:
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);
這裏有一個Fiddle。
這工作,現在我必須循環它,並顯示結果在用戶界面。 :) –
function lastNameSort(a,b) {
return a.split(" ").pop()[0] > b.split(" ").pop()[0]
};
names.sort(lastNameSort);
這是靈感來自this answer。
你想按字母順序對它們進行排序,還是隻將那些沒有姓氏的人先排序? –
[是'Bob'的第一個還是最後一個名字? 'H'屬於第一個還是最後一個名字?](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) – Bergi
埃米爾答案適合我。 –