我一直在互聯網上尋找答案,包括挑選一些正確執行的代碼,但我似乎無法弄清楚。
基本上,我想采用現有的物件陣列
rank_data = [
{ name: "IRJBoss", point: 100 },
{ name: "RegainedORU", point: 100 },
{ name: "Kirbycube", point: 100 },
{ name: "RegainedORU", point: 96.735},
{ name: "Kirbycube", point: 96.735 },
{ name: "HanoCrux", point: 93.674 },
{ name: "Rynoxious", point: 93.674 },
{ name: "KanadianKiD", point: 93.674 },
{ name: "RegainedORU", point: 93.674 },
{ name: "LightShade", point: 93.674 },
...
]
并將它們格式化,以便將所有點加在一起,并且每個名稱只使用一次
rank_data = [
{ name: "RegainedORU", point: 290.409 },
{ name: "Kirbycube", point: 196.735 },
{ name: "IRJBoss", point: 100 },
{ name: "HanoCrux", point: 93.674 },
{ name: "Rynoxious", point: 93.674 },
{ name: "KanadianKiD", point: 93.674 },
{ name: "LightShade", point: 93.674 },
...
]
我可以在我的代碼中實作這一點的最簡單方法是什么?
uj5u.com熱心網友回復:
基本上,您只需使用它們對它們進行分組name,reduce然后按point.
const rank_data = [{"name":"IRJBoss","point":100},{"name":"RegainedORU","point":100},{"name":"Kirbycube","point":100},{"name":"RegainedORU","point":96.735},{"name":"Kirbycube","point":96.735},{"name":"HanoCrux","point":93.674},{"name":"Rynoxious","point":93.674},{"name":"KanadianKiD","point":93.674},{"name":"RegainedORU","point":93.674},{"name":"LightShade","point":93.674}]
const result = Object.values(rank_data.reduce((r, { name, point }) => {
if (!r[name]) r[name] = { name, point }
else r[name].point = point
return r
}, {})).sort((a, b) => b.point - a.point)
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/490169.html
標籤:javascript 数组 排序 目的
