【发布时间】:2016-12-15 08:06:22
【问题描述】:
我正在使用 node.js
我在下面有这个 RowDataPacket 对象数组;
{
_ID: 4,
_NAME: "Switch4",
_CASE_COUNTER: 1,
_CASE_ID: 1
},
{
_ID: 4,
_NAME: "Switch4",
_CASE_COUNTER: 2,
_CASE_ID: 2
}
{
_ID: 4,
_NAME: "Switch4",
_CASE_COUNTER: 3,
_CASE_ID: 3
}
我想将这个 RowDataPacket 对象数组缩小为一个对象。缩小后是这个样子的;
{
_ID: 4,
_NAME: "Switch4",
_CASE_COUNTER: 1,
_CASE_ID: 1,
_CASE_COUNTER: 2,
_CASE_ID: 2,
_CASE_COUNTER: 3,
_CASE_ID: 3
}
键 _ID 和 _NAME 在 RowDataPacket 对象数组中具有相同的值。其他键将具有不同的值。如何在 node.js v4.7.x 中做到这一点?
编辑:它不是原始问题中提到的 json 对象数组。它是一个 RowDataPacket 对象数组,是 MySQL 查询的结果。
【问题讨论】:
-
好吧,你必须重命名一些键,因为你不能有重复。
-
keys 应该是唯一的,否则最后遇到的 key 的值只会是增益
-
感谢指正。我已经编辑了这个问题。它是一个 RowDataPacket 对象数组,而不是 json 对象数组。我的错。
-
您可以使用
Array.reduce方法来实现此目的,但最终对象中不应有重复的属性(在您的情况下为_CASE_ID,_CASE_COUNTER)。您需要覆盖它们的值或为每个重复的属性创建数组。 -
键在对象中必须是唯一的。你能相应地更新问题吗?