在我的 nodeJs 代码中,我正在从数据库中获取一些记录。我正在获取 JSON 格式的数据,如下所示:
"Data": [{
"id": 1,
"color": "blue",
"model_name": "ford",
"year": 2016
}, {
"id": 2,
"color": "blue",
"model_name": "Maruti",
"year": 2016
}, {
"id": 3,
"color": "red",
"model_name": "Fiat",
"year": 2016
}, {
"id": 4,
"color": "red",
"model_name": "tata",
"year": 2016
}]
我想要的是类似于以下 JSON 的内容:
"Data": [{
"color": "blue",
car: [{
"id": 1,
"color": "blue",
"model_name": "ford",
"year": 2016
}, {
"id": 2,
"color": "blue",
"model_name": "Maruti",
"year": 2016
}]
}, {
"color": "red",
car: [{
"id": 3,
"color": "red",
"model_name": "Fiat",
"year": 2016
}, {
"id": 4,
"color": "red",
"model_name": "tata",
"year": 2016
}]
}]
我可以通过使用下面的代码使用下划线 JS 的“groupBy”方法来实现这一点:
var groupedData = _.groupBy(rows, f=>{return f.color});
但是输出变为:
"Data": [{
"blue": [{
"id": 1,
"color": "blue",
"model_name": "ford",
"year": 2016
}, {
"id": 2,
"color": "blue",
"model_name": "Maruti",
"year": 2016
}]
}, {
"red": [{
"id": 3,
"color": "red",
"model_name": "Fiat",
"year": 2016
}, {
"id": 4,
"color": "red",
"model_name": "tata",
"year": 2016
}]
}]
这里的问题是颜色名称本身就是关键。我想要这种格式的 “color”: “blue” ,但是在一个组中。
原文由 aroz2016 发布,翻译遵循 CC BY-SA 4.0 许可协议
纯 ES6 代码的另一种直接方法。