我在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
埃米尔答案适合我。 –