Pivot JSON然后从Array of Array创建一个Array,

时间:2017-04-26 04:41:17

标签: javascript arrays json angular typescript

我很难从JSON在Angular2中生成一个表,因为我想转动JSON数据并且无法为它构建一个接口(我通常使用的方法)

JSON即时使用的摘录,我将在其中转换哪个

[
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHAUD",
    "Holding": 318622.53
  },
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHCAD",
    "Holding": 7195
  },
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHEUR",
    "Holding": 5077.97
  },
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHGBP",
    "Holding": 19625
  },
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHJPY",
    "Holding": 16463
  },
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHNZD",
    "Holding": 601.56
  },
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHSGD",
    "Holding": 1000
  },
  {
    "ValueDate": "2017-04-26T14:16:00",
    "AccountName": "CASHUSD",
    "Holding": 1716906.25
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHAUD",
    "Holding": 318622.53
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHCAD",
    "Holding": 7195
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHEUR",
    "Holding": 5077.97
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHGBP",
    "Holding": 19625
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHJPY",
    "Holding": 16463
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHNZD",
    "Holding": 601.56
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHSGD",
    "Holding": 1000
  },
  {
    "ValueDate": "2017-04-27T14:16:00",
    "AccountName": "CASHUSD",
    "Holding": 1720781.25
  }
]

我使用以下教程http://techbrij.com/convert-column-to-row-javascript-array-pivot来转动JSON数组,从而产生一个数组数组

enter image description here

这不是一个糟糕的结果

标题始终为[i][0] 数据始终为[i + 1][j]

我是否可以通过这些数组循环创建一个对象或另一个我可以构建表格的数组?

2 个答案:

答案 0 :(得分:0)

创建一个包含三行的新数组(表示ValueDate,AccountName和Holding值)并迭代原始值:

source = [{...}, {...} ... ];
result = [[], [], []];
source.forEach((row, index) => {
  result[0][index] = row.ValueDate;
  result[1][index] = row.AccountName;
  result[2][index] = row.Holding;
});

请参阅以下Plunker示例: https://plnkr.co/edit/15ZmVUxhEyPLTlDmHCLb?p=preview

答案 1 :(得分:0)

您可以将pivotTable.js与Angular2集成。这很容易。如果您选择此选项,我可以帮助您。欢呼声。