gpt4 book ai didi

javascript - 按 bool 值,姓氏和名称在javascript中对数组进行排序

转载 作者:行者123 更新时间:2023-12-03 07:18:12 29 4
gpt4 key购买 nike

我尝试对我的对象数组进行排序:

对象:

interface IFriend {
_id: string;
name: string;
surname: string;
avatar: string;
online: boolean;
}

我想按顺序进行 - 在线、姓氏、姓名。我试过这个:

  friendsCopy
.sort((a: IFriend, b: IFriend) =>
a.online === b.online ? 0 : a.online ? -1 : 1
)
.sort((a: IFriend, b: IFriend) => a.surname.localeCompare(b.surname, "pl"))
.sort((a: IFriend, b: IFriend) => a.name.localeCompare(b.name, "pl"));

但是效果不是很好

最佳答案

因为你排序的方向错了。

如果你反转函数那么它应该给出你想要的输出:

friendsCopy
.sort((a: IFriend, b: IFriend) => a.name.localeCompare(b.name, "pl"))
.sort((a: IFriend, b: IFriend) => a.surname.localeCompare(b.surname, "pl"))
.sort((a: IFriend, b: IFriend) =>
a.online === b.online ? 0 : a.online ? -1 : 1
);

按姓名排序,然后按姓氏排序,然后按在线人数排序。最终名单将在网上->姓氏->姓名

关于javascript - 按 bool 值,姓氏和名称在javascript中对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64414248/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com