我正在使用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);

mysql rowdatapacket_arrays – 将此RowDataPacket对象数组缩小为单个对象相关推荐

  1. 通过属性值从对象数组中获取JavaScript对象[重复]

    本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...

  2. jQuery过滤器:筛选jquery对象数组中的DOM对象

    目录 一.定义: 二.基本过滤器: 一.定义: 过滤器就是过滤条件,对已经定位到jquery对象数组中的DOM对象进行过滤筛选,过滤条件不能独立出现在jquery函数,如果使用则只能出现在选择器后方. ...

  3. js ajax传对象数组参数,JS传递对象数组为参数给后端,后端获取

    JS传递对象数组为参数给后端,后端获取. 前端JS代码: var conditons = []; var test1 = new Object(); test1.name="1"; ...

  4. java ajax json 解析json数组对象数组对象数组对象数组_ajax传递包含对象数组的json数据...

    一个简单的demo.用户在前台页面表单输入数据表的信息,数据传递到后台,系统自动在后台创建数据库表(table)的功能. 作为简单demo,这里的表只有"表名","列名& ...

  5. java中对象数组如何构造_对象数组如何构造

    定义一个对象数组时是如何调用构造函数和析构函数的 #include #include using namespace std; //对象数组的初始化请看该函数 class student { publ ...

  6. java封装对象数组_java解析JSON对象和封装对象的示例

    在本例中java解析JSON对象使用的是org.json,因此,如果各位想测试我的代码,请先确保有java.json.jar包,否则,就需要去网上下载这个jar包,然后才可以正常使用本代码. 本例的功 ...

  7. java类和对象数组传参_java对象,数组作为参数传递给

    java 学习笔记 ( 四 )---- 对象.数组作为参数传递,静态变量.静态方法的使用, 内部类,使用文档注释 2009-10-15 20:21 ***对象作为参数传递*** class passp ...

  8. php 遍历对象数组,js中遍历对象(5种)和遍历数组(6种)的方法总结

    本篇文章给大家带来的内容是关于js中遍历对象(5种)和遍历数组(6种)的方法总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.遍历对象方法 1.for...in 遍历输出的是对 ...

  9. 对象数组与普通数组 java 0913

    对象数组 java 0913 普通数组的定义与使用 public class test2 {public static void main(String[] args) {System.out.pri ...

最新文章

  1. php 面向对象学习
  2. java事务不生效场景_springboot中使用@Transactional注解事物不生效的坑
  3. Matlab多项式回归实现
  4. linux日志不区分大小写,windows系统迁移到linux下,Nginx实现url请求不区分大小写...
  5. [GO]append的扩容
  6. 学习python第一天总纲
  7. Linux父进程如何发信号给子进程,关于C#:fork和signal:如何将信号从父进程发送到特定的子进程...
  8. Matlab2017a/b激活license.lic文件
  9. 中国百家姓氏图腾大全
  10. Spring BcryptPasswordEncorder Log Rounds参数说明
  11. CDA I级学习 - 漏斗模型
  12. DAO、DTO、PO、POJO、BO、VO、AO基本概念
  13. MOSFET的基本知识
  14. 算法:递归(汉诺塔)
  15. 自己动手打造html5星际迷航!
  16. 微信统一下单prepay_id为空php,微信支付-普通下单开发者文档
  17. IDM试用到期怎么办
  18. kubernetes 对 rook 进行扩容
  19. vuex原理以及实现
  20. 期刊论文如何降低重复率?

热门文章

  1. 深入浅出理解 Spark:环境部署与工作原理
  2. 获“CAIS紫金奖”,腾讯民汉翻译践行“科技向善”
  3. 第一篇|腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等
  4. PMP之项目沟通管理
  5. ISO base media file format---iso 基础媒体文件格式(专业名称)
  6. 最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)
  7. Cannot resolve bean 'xxx' less... (Ctrl+F1) Inspection info:Checks autowir
  8. 每次创建maven都要重新设置set,如何将本地maven设置为默认的maven
  9. leetcode 712. Minimum ASCII Delete Sum for Two Strings | 712. 两个字符串的最小ASCII删除和(暴力递归->傻缓存->DP)
  10. 【jQuery】使用id选择器,找出外层div中嵌套的内层div