0

给定以下数组,我们如何编写代码以按姓氏、名字降序对包含的对象进行排序?

[
{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"}
]

我不知道如何继续这件事,我想你们可能会有所帮助。

谢谢

4

2 回答 2

8

在 JavaScript 中:

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

演示:http: //jsfiddle.net/nMs67/

于 2013-06-03T23:46:33.453 回答
1

编写你自己的Comparator,使用上面编写的逻辑比较对象,并用它调用两个参数版本Arrays.sort

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

于 2013-06-03T23:41:09.003 回答