【发布时间】:2021-07-21 15:16:32
【问题描述】:
我有一个包含用户数据的对象数组。
我需要做的是先用登录用户订购它们。
我以前曾与此合作过:
const loggedInUserTemplate = users?.find(loggedInUser => {
return loggedInUser.id === user?.id;
});
renderUsers?.forEach((item, i) => {
if (item.id === loggedInUserTemplate.id) {
renderUsers?.splice(i, 1);
renderUsers?.unshift(item);
}
});
但是由于种种原因,我不能再使用这个了。
我的新解决方案包括这些,但都不起作用。有人有什么建议吗?
const loggedInUser = user?.id;
let test = JSON.parse(JSON.stringify(users));
// test = test.sort((a, user) => (a.id === loggedInUser ? 0 : 1));
// test = test.sort((a, user) => (a.id == loggedInUser ? 0 : 1));
test.sort((a, loggedInUser) => {
console.log("what is a?", typeof a.id, a.id);
console.log("user -----", typeof loggedInUser, loggedInUser);
if (a?.id === loggedInUser) return 0;
});
console.log("test", test);
数组如下所示:
[
{__typename: "user", id: "4274", firstName: "tom"},
{__typename: "user", id: "742", firstName: "richard"},
{__typename: "user", id: "4293", firstName: "harry" }
]
在我的测试用例中,登录用户 id 是“742”,所以我希望“richard”首先出现在数组中。
【问题讨论】:
标签: javascript arrays reactjs sorting