使用forloop获取值

时间:2019-02-25 06:22:37

标签: javascript

我写了一个返回json的代码,

"aggrRes": {
"totalSize": 3,
"done": true,
"records": [
  {
    "attributes": {
      "type": "AggregateResult"
    },
    "expr0": "2019-02-25",
    "expr1": 40,
    "expr2": 27
  },
  {
    "attributes": {
      "type": "AggregateResult"
    },
    "expr0": "2019-02-22",
    "expr1": 36,
    "expr2": 9
  },
  {
    "attributes": {
      "type": "AggregateResult"
    },
    "expr0": "2019-02-21",
    "expr1": 38,
    "expr2": 12.5
  }
 ]
}

使用此json,我想创建另一个json。此处的格式应类似于以下内容。

in forloop:
   dataset:
      dates:[get all expr0 for all 3 records],
      expr1:[get all expr1 for all 3 records],
      expr2:[get all expr2 for all 3 records]

这里我最困惑的部分是如何执行以下操作。

var agResp = this.total_info.aggrRes;
for(int i=0; i<records.size; i++){
console.log(agResp.records[0].expr**i**);
}

在这里,我想通过循环i值来获取 expr 值,这将生成 expr0 expr1 expr2 值。

谢谢

1 个答案:

答案 0 :(得分:1)

var records = aggrRes.records; // Store Records in a variable
var values = [];

records.forEach(record => {
  Object.keys(record).forEach(key => {
    if (values[key]) {
      values[key].push(record[key]);
    } else {
      values[key] = [record[key]];
    }
  });
});
console.log(values);

将返回类似这样的内容

attributes: (3) [{…}, {…}, {…}]
expr0: (3) ["2019-02-25", "2019-02-22", "2019-02-21"]
expr1: (3) [40, 36, 38]
expr2: (3) [27, 9, 12.5]