사용자 개체 배열이 있으며 그중 일부는 여러 번 나타납니다. 각 고유 사용자 개체가 배열에 표시되는 횟수를 계산하고 배열에서 가장 자주 나타나는 사용자가 배열에서 가장 먼저 표시되고 배열에서 가장 적게 표시되는 사용자가 배열에서 마지막에 표시되도록 재정렬하려고합니다.
const users =
[
{id: "0f933bbd-d1fb-4ad5-80f0-661c3c0aa2f8", handle: "lisa", email: "[email protected]", createdAt: 1593894321997},
{id: "bbfc927c-f3d4-4cdd-b872-9cb233a194aa", handle: "jisoo", email: "[email protected]", createdAt: 1592452421714},
{id: "be942039-6a59-46a4-9f92-1f7808b20c2f", handle: "unnieJennie", email: "[email protected]", createdAt: 1593894227232},
{id: "0f933bbd-d1fb-4ad5-80f0-661c3c0aa2f8", handle: "lisa", email: "[email protected]", createdAt: 1593894321997},
{id: "1d1e31cd-eff2-47de-b46d-4d45bb2dd97f", handle: "kawikaLovesKpop", email: "[email protected]", createdAt: 1593894550566},
{id: "be942039-6a59-46a4-9f92-1f7808b20c2f", handle: "unnieJennie", email: "[email protected]", createdAt: 1593894227232},
{id: "0f933bbd-d1fb-4ad5-80f0-661c3c0aa2f8", handle: "lisa", email: "[email protected]", createdAt: 1593894321997},
{id: "1d1e31cd-eff2-47de-b46d-4d45bb2dd97f", handle: "kawikaLovesKpop", email: "[email protected]", createdAt: 1593894550566},
{id: "be942039-6a59-46a4-9f92-1f7808b20c2f", handle: "unnieJennie", email: "[email protected]", createdAt: 1593894227232}
]
lodash와 함께 countBy 메소드를 사용해 보았습니다.
const bestMatched = countBy(users, "handle");
반환하는
{lisa: 3, jisoo: 1, unnieJennie: 3, kawikaLovesKpop: 2}
모든 객체 키와 값을 사용하여 사용자 배열에 계속 액세스해야합니다.
const users =
[
{id: "0f933bbd-d1fb-4ad5-80f0-661c3c0aa2f8", handle: "lisa", email: "[email protected]", createdAt: 1593894321997},
{id: "bbfc927c-f3d4-4cdd-b872-9cb233a194aa", handle: "jisoo", email: "[email protected]", createdAt: 1592452421714},
{id: "be942039-6a59-46a4-9f92-1f7808b20c2f", handle: "unnieJennie", email: "[email protected]", createdAt: 1593894227232},
{id: "0f933bbd-d1fb-4ad5-80f0-661c3c0aa2f8", handle: "lisa", email: "[email protected]", createdAt: 1593894321997},
{id: "1d1e31cd-eff2-47de-b46d-4d45bb2dd97f", handle: "kawikaLovesKpop", email: "[email protected]", createdAt: 1593894550566},
{id: "be942039-6a59-46a4-9f92-1f7808b20c2f", handle: "unnieJennie", email: "[email protected]", createdAt: 1593894227232},
{id: "0f933bbd-d1fb-4ad5-80f0-661c3c0aa2f8", handle: "lisa", email: "[email protected]", createdAt: 1593894321997},
{id: "1d1e31cd-eff2-47de-b46d-4d45bb2dd97f", handle: "kawikaLovesKpop", email: "[email protected]", createdAt: 1593894550566},
{id: "be942039-6a59-46a4-9f92-1f7808b20c2f", handle: "unnieJennie", email: "[email protected]", createdAt: 1593894227232}
]
ob={lisa: 3, jisoo: 1, unnieJennie: 3, kawikaLovesKpop: 2}
map=new Map()
users.map(x=>map.set(x.handle,x))
res=Object.entries(ob).sort((a,b)=>b[1]-a[1])
.flatMap(o=>Array(o[1]).fill(map.get(o[0])))
console.log(res)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다