在Javascript中按名字(按字母顺序)对数组进行排序

我得到了一个数组(请参阅下面的数组中的一个对象),我需要使用JavaScript按名字排序。我该怎么做?

var user = {

bio: null,

email: "user@domain.com",

firstname: "Anna",

id: 318,

lastAvatar: null,

lastMessage: null,

lastname: "Nickson",

nickname: "anny"

};

回答:

假设您有一个数组users。您可以使用users.sort并传递一个接受两个参数并进行比较的函数(比较器)

它应该返回

  • 如果第一个参数小于第二个参数,则为负数(应在结果数组的第二个参数之前放置)
  • 如果第一个参数较大,则为正数(应放在第二个参数之后)
  • 如果这两个元素相等,则为0。

在我们的情况下,如果两个元素是ab我们要比较a.firstnameb.firstname

例:

users.sort(function(a, b){

if(a.firstname < b.firstname) { return -1; }

if(a.firstname > b.firstname) { return 1; }

return 0;

})

此代码将适用于任何类型。

请注意,在“现实生活”™中,当您比较字符串时,您通常希望忽略大小写,正确地对变音符号进行排序,诸如ß之类的怪异符号,因此您可能需要使用localeCompare。为清楚起见,请参见其他答案。

以上是 在Javascript中按名字(按字母顺序)对数组进行排序 的全部内容, 来源链接: utcz.com/qa/429683.html

回到顶部