按姓氏,名字 - 降序对数组中包含的对象进行排序

时间:2013-06-03 23:40:04

标签: javascript

给定以下数组,我们如何编写用包括姓氏降序的包含对象排序的代码?

[
{key: 1, firstName: "George", lastName: "Jones"},
{key: 1, firstName: "Alison", lastName: "Clarke"},
{key: 1, firstName: "Ben", lastName: "Smith"},
{key: 1, firstName: "Xavier", lastName: "Clark"},
{key: 1, firstName: "Harold", lastName: "Timmins"}
]

我不知道如何继续这个,我想你们可能会帮忙。

由于

2 个答案:

答案 0 :(得分:5)

在JavaScript中:

myarray.sort(function(a, b) {
    return b.lastName.localeCompare(a.lastName) ||
           b.firstName.localeCompare(a.firstName)
});

DEMO: http://jsfiddle.net/nMs67/

答案 1 :(得分:1)

使用您在上面编写的逻辑编写自己的Comparator比较对象,并使用Arrays.sort调用two parameters version

这在Java或JavaScript中基本相同,只是在Java中,Comparator需要是实现Comparator接口的类的对象,而在JavaScript中只需要一个函数就足够了。这有点突出了JavaScript的功能方面和Java面向对象的本质。