- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 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 查询的结果。
最佳答案
对象不能有多个相同的键。
我建议您将这些数据收集到数组中:
function combine(list) {
return list.reduce((carry, o) => {
for (var k in o) {
if (!carry[k]) carry[k] = [];
carry[k].push(o[k]);
}
return carry;
}, {});
}
var input = [];
input.push({id: 1, tag: 'Tag#1'});
input.push({id: 2, tag: 'Tag#2'});
input.push({id: 3, tag: 'Tag#3'});
var res = combine(input);
console.log(res);
对于不同键的不同行为,我们应该提供一些模式:
function combine(list, schema) {
return list.reduce((carry, o) => {
for (var k in o) {
switch (schema[k]) {
case 'scalar': carry[k] = o[k]; break;// Overwrite
default:
case 'array':
if (!carry[k]) carry[k] = [];
carry[k].push(o[k]);
break;
}
}
return carry;
}, {});
}
var input = [];
input.push({id: 1, tag: 'Tag#1'});
input.push({id: 1, tag: 'Tag#2'});
input.push({id: 1, tag: 'Tag#3'});
var res = combine(input, {id: 'scalar', tag: 'array'});
console.log(res);
关于arrays - 将这个 RowDataPacket 对象数组缩小为单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38847995/
请帮我将 rowdatapacket 转换为数组数组或嵌套数组 在此处输入代码 router.get('/getPosts/:user_id', (req, res, next) => { conne
我有一个存储过程要插入数据库并在插入后将订单 ID 返回到控制台。 这是我的存储过程 CREATE PROCEDURE create_old_user_order( IN p_userid
在将其发送到前端之前,我需要向 mysql 结果对象添加一个附加字段。 (在我的例子中是 .ejs) 这是我的 mysql 结果行: RowDataPacket{ agent_id: 1,name:
如何在 RowDataPacket 中循环数据。 发生此问题是因为在 addonis QueryBuild 中不返回相同的值 作为清晰的模型 如果我使用清晰的模型,每个都可以正常工作 const em
我想检查用户是否在我的数据库中。结果的值为行数据包。如果用户不存在则为 0,如果存在则为 1。我如何访问这个值? connection.query("SELECT EXISTS(SELECT 1 FR
我正在尝试访问由此查询创建的对象: con.query('SELECT AVG(gold) from results', (err,result) => { console.log
我正在使用 node.js 我在下面有这个 RowDataPacket 对象数组; { _ID: 4, _NAME: "Switch4", _CASE_COUNTER: 1,
我目前正在使用 Node-webkit 开发一个桌面应用程序。在此过程中,我需要从本地 MySQL 数据库中获取一些数据。 查询工作正常,但我不知道如何访问结果。我将它们全部存储在一个数组中,然后传递
我使用 Nodejs 从 MySQL 服务器获取了数据,我想删除该数组中的重复数据,但是该数组的结构看起来很奇怪,我尝试了各种方法来解决这个问题,但是没有用。 代码 router.get(`/find
我有一个返回类似于以下内容的查询: [ RowDataPacket { username: 'mario', content: 'foo', quantity: 4 }, RowDataPacke
我想使用 getServerSideProps 使用 Next.js 进行服务器端渲染方法如 explained in the docs . 数据应该来自数据库,所以我使用的是 mysql包裹。这会导
我想获取 MySQL 数据库的数量,然后我查询“SELECT COUNT(*) FROMarticles_table”并得到“[ RowDataPacket { 'COUNT(*)': 13 } ]"
connection.query(' SET @update_id := 0; UPDATE relations set x1 = ?, y1 = ?, id = (SELECT @update_id
我搜索过,没有其他人的问题与我的直接匹配。 我使用一个简单的 GET 请求来提取 MySQL 表,但它只是在客户端返回一些奇怪的对象。我在服务器端使用 console.log(rows) 并返回: [
The code its about: con.query(`SET @row_num = 0; SELECT @row_num := @row_num + 1 AS row_number, user
我想访问包含实际计数元素数的变量,但我不知道如何访问。 sql = "SELECT COUNT(id) FROM users WHERE username='" + req.body.user
我是一名优秀的程序员,十分优秀!