我的问题是,我如何通过这一点:
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]
}
]我试过复制,但到目前为止还没有。
发布于 2021-07-13 21:50:39
您应该对数组进行迭代,并在name对象中以数组方式将score设置为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)
}发布于 2021-07-14 00:02:42
您可以通过第一次将数据分组并使用减值函数来获得预期的结果。
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
}
})https://stackoverflow.com/questions/68369656
复制相似问题