javascript - 在名字和姓氏之后对数组进行排序,javascript

标签 javascript arrays sorting

目前我正在对firstName 上的数组进行排序。

currentUsers = currentUsers.sort(function(a, b) {
    if (a.firstName > b.firstName) {
        return 1;
    } else if (a.firstName < b.firstName) {
        return -1;
    }
};

但我也想对姓氏进行排序。这样鲍勃·安德森就会排在鲍勃·鲍勃森之上。我在 stackoverflow 上查看了另一个问题,建议我添加:

currentUsers = currentUsers.sort(function(a, b) {
    if (a.firstName > b.firstName) {
        return 1;
    } else if (a.firstName < b.firstName) {
        return -1;
    }

    if (a.lastName > b.lastName) {
        return 1;
    } else if (a.lastName < b.lastName) {
        return -1;
    } else {
        return 0;
    }
};

//编辑 我遇到的问题是排序不断对名字中的每个字母进行排序。我如何只对名字的第一个字母进行排序,然后继续对姓氏进行排序?

最佳答案

你可以试试这个ES6版本

const currentUsers = [{
  firstName: "Bob",
  lastName: "Adler"
}, {
  firstName: "Barney",
  lastName: "Jones"
}, {
  firstName: "Freddie",
  lastName: "Crougar"
}, {
  firstName: "Bob",
  lastName: "Adams"
}, {
  firstName: "Joe",
  lastName: "Lewis"
}, {
  firstName: "Joseph",
  lastName: "Lewis"
}];

const sortedUsers = currentUsers.sort((a, b) => {
          const result = a.firstName.localeCompare(b.firstName);

          return result !== 0 ? result : a.lastName.localeCompare(b.lastName);
        })

console.log(sortedUsers);

关于javascript - 在名字和姓氏之后对数组进行排序,javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33031459/

相关文章:

javascript - 当我点击链接时,div 将如何显示在垂直坐标 20px 中

javascript - 如何在关闭浏览器时触发卸载方法?

ios - 如何在具有UITableview行的UICollectionViewCell中显示Json Array数据?

sorting - 在排序表达式中使用聚合函数

algorithm - 将 2d 点排序为矩阵

javascript - 在纯前端应用程序上存储服务凭证的位置和方式

javascript - 可调整大小的文本区域就像使用 Vanilla Javascript 一样

python - 按公共(public)日期对数组数据进行排序

c - 在 C 中使用指针对数组进行排序

javascript - 通过引用传递?