簡體   English   中英

JavaScript 中的對象重復

[英]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並將scorevalue

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM