目前我正在对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/