【发布时间】:2022-01-21 15:20:19
【问题描述】:
我有一些格式不理想的数据,我想将其展平。
数据:
[
{
team: "Team 1",
name: "John"
},
{
team: "Team 1",
name: "Stacy"
},
{
team: "Team 1",
name: "Jason"
},
{
team: "Team 2",
name: "Tim"
},
{
team: "Team 2",
name: "Andrew"
},
{
team: "Team 2",
name: "Steve"
}
,
{
team: "Team 3",
name: "Eric"
},
{
team: "Team 3",
name: "Frank"
},
{
team: "Team 3",
name: "Cory"
}
]
想要的结果是:
[
{
team: "Team 1",
name: ["John", "Stacy", "Jason"],
count: 3
},
{
team: "Team 2",
name: ["Tim", "Andrew", "Steve"],
count: 3
},
{
team: "Team 3",
name: ["Eric", "Frank", "Cory"],
count: 3
}
]
我试过循环遍历它并使用Object.assing,但这似乎是不正确的方法。关于扁平化这些数据的好方法有什么建议吗?谢谢
【问题讨论】:
-
您真正想要的是“groupBy”。进行搜索,将找到该操作的许多结果
-
仅供参考,您所要求的不是扁平化。
Array.prototype.flat()定义了展平数组,而您要求的不是那个。您要求分组。 -
@Dementic - 您搜索的问题是 OP 实际上并不想要扁平化(他们想要分组),所以 OP 的问题是他们不知道要搜索的正确术语并且没有意识到他们认为它被称为是错误的。这是搜索时偶尔出现的错误。如果您不知道要搜索的正确内容,它可能对您没有帮助。
-
谢谢@jfriend00 我没有找到合适的结果,因为我想的是扁平化而不是分组。
-
@Dementic - 如果您查看问题中的实际输入/输出数据,则无需猜测,很明显这不是通用扁平化,这实际上是一个很好的问题(它们包括输入/输出的精确示例)。与 stackoverflow 上的许多问题不同,这里不需要猜测。
标签: javascript json ecmascript-6