为了账号安全,请及时绑定邮箱和手机立即绑定

按名称(字母顺序)在Javascript中排序数组

按名称(字母顺序)在Javascript中排序数组

holdtom 2019-07-22 15:07:36
按名称(字母顺序)在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。

在我们的例子中,如果两个元素是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..

查看完整回答
反对 回复 2019-07-22
?
智慧大石

TA贡献1946条经验 获得超3个赞

如果比较的字符串包含Unicode字符,则可以使用localeCompare功能的String类,如下所示:

users.sort(function(a,b){
    return a.firstname.localeCompare(b.firstname);})


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 2493 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信