我有一个数组返回如下:
errors = [
{
"row": 1,
"key": "volume",
"errorType": "Data type",
"expectedType": "number",
"receivedType": "string"
},
{
"row": 1,
"key": "units",
"errorType": "Required data",
"expectedType": "string"
},
{
"row": 3,
"key": "year",
"errorType": "Incorrect data type",
"expectedType": "number",
"receivedType": "string"
},
{
"row": 3,
"key": "make",
"errorType": "Required data",
"expectedType": "string"
}
]
我想返回一个对象数组,如下所示:
const errorGrouped = [
{
row:1,
data:[
{
"key":"volume",
"errorType": "Data type",
"expectedType": "number",
"receivedType": "string"
},
{
"key": "units",
"errorType": "Required data",
"expectedType": "string"
}
]
},
{
row:3,
data:[
{
"key": "year",
"errorType": "Incorrect data type",
"expectedType": "number",
"receivedType": "string"
},
{
"key": "make",
"errorType": "Required data",
"expectedType": "string"
}
]
}
]
我尝试过Map每个对象,将其解构为所需的[{row:..,data:[...]}]形式,但我找不到一种明显而清晰的分组方式--这向我暗示了一种更好的方法。
但是,是的,感谢任何人可以提供的帮助。谢谢
2条答案
按热度按时间fae0ux8s1#
您可以通过使用hash(JS对象)在单个循环中实现这一点
axr492tv2#
可以在JS中使用reduce方法。