[英]Object duplicates in JavaScript
我的問題是我怎么能通過這個:
const array = [
{name: "Bline", score: 95},
{name: "Flynn", score: 75},
{name: "Carl", score: 80},
{name: "Bline", score: 77},
{name: "Flynn", score: 88},
{name: "Carl", score: 80}
]
使用 javascript 到這個對象數組:
[
{
name: 'Bline',
data: [95, 77]
}
{
name: 'Flynn',
data: [75, 88]
}
{
name: 'Carl',
data: [80, 80]
}
]
我試過使用重復但到目前為止什么都沒有
你應該迭代你的數組並在對象中以數組方式將name
設置為key
並將score
為value
:
let result = {}
for (let item of array) {
if (!result[item.name]) result[item.name] = [item.score]
else result[item.name].push(item.score)
}
您可以通過首先使用reduce 函數對數據進行分組來獲得預期結果。
let grouped = array.reduce(function (r, a) {
r[a.name] = r[a.name] || [];
r[a.name].push(a.score);
return r;
}, {});
然后將其格式化為您想要的格式。
let formated = Object.entries(grouped).map(([key, value]) => {
return {
name : key,
data: value
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.