按名称(字母顺序)在Javascript中排序数组我得到了一个数组(参见下面的数组中的一个对象),我需要使用JavaScript按照名字进行排序。我该怎么做?var user = {
bio: null,
email: "user@domain.com",
firstname: "Anna",
id: 318,
lastAvatar: null,
lastMessage: null,
lastname: "Nickson",
nickname: "anny"};
3 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
假设您有一个数组users
..你可以用users.sort
并传递一个函数,该函数接受两个参数并对它们进行比较(比较器)
它应该会回来
- 如果第一个参数小于第二个参数,则为负值(在结果数组中,应放在第二个参数之前)。
- 如果第一个论点更大的话(应该放在第二个论点之后)
- 如果这两个元素相等,则为0。
在我们的例子中,如果两个元素是a
和b
我们想比较一下a.firstname
和b.firstname
例子:
users.sort(function(a, b){ if(a.firstname < b.firstname) { return -1; } if(a.firstname > b.firstname) { return 1; } return 0;})
此代码将适用于任何类型。
请注意,在“现实生活”™中,您经常希望在比较字符串时忽略大小写,正确地排序指示符、奇怪的符号(例如,),所以您可能想要使用localeCompare
..
智慧大石
TA贡献1946条经验 获得超3个赞
如果比较的字符串包含Unicode字符,则可以使用localeCompare
功能的String
类,如下所示:
users.sort(function(a,b){ return a.firstname.localeCompare(b.firstname);})
添加回答
举报
0/150
提交
取消