如何从对象JavaScript数组中提取数据

时间:2018-11-02 20:15:07

标签: javascript arrays json object

在询问之前,我已经进行了很多搜索,但是现在我非常需要帮助。 我有一个对象数组,每个对象都是来自oData rest api的数据集合。 在执行循环以过滤数据之后,我创建了这个json对象:

0: Array(32) [ {…}, {…}, {…}, … ]
​​
1: Array(46) [ {…}, {…}, {…}, … ]


   0:[{
    "DOCUMENT TYPE": "CF"
  },
  {
    "ACCOUNT TYPE": "D"
  },
  {
    "BILLING DATE": "/Date(253402214400000)/"
  },
  {
    " ACQUISITION COSTS": "0"
  }]

我要从此创建一个html表,我需要从此更改为下面的结构。这是json格式的数组

[{
    "DOCUMENT TYPE”:”B”
    "ACQUISITION COSTS": "200"
  }],
  [{
    "DOCUMENT TYPE": "A",
    "ACCOUNT TYPE": "B",
    "BILLING DATE": "/Date(229402214400000)/",
    "ACQUISITION COSTS": "10"
  }]

在那之后,我要进行循环,对于数组的每个索引,我将打印出tr,th和td。

更新: 您建议我根据键的名称进行循环,但是对于每个调用,我接收到不同的数据,并且对于每个数据,如果键不存在并且必须将值添加到单元格tr,td中,则该键必须位于th中

我需要弄清楚如何将对象Json变成一个简单的值键json,并用逗号而不是订书钉和逗号分隔

我希望有人能帮助我。 谢谢

2 个答案:

答案 0 :(得分:0)

您要做的就是循环播放

for (var index in array){
  console.log(array[index]);
  if(array[index].hasOwnProperty('BILLING  DATE')){
    console.log(array[index]['BILLING  DATE']);
  }
}

答案 1 :(得分:0)

假设您具有2D数组,则可以使用函数Array.prototype.map创建具有所需输出的新数组。在函数Array.prototype.reduce的处理程序中,函数Object.assign为每个索引创建特定的对象。

let arr = [[{    "DOCUMENT TYPE": "CF"  },  {    "ACCOUNT TYPE": "D"  },  {    "BILLING ANOMALIES DATE": "/Date(253402214400000)/"  },  {    "CAPITALIZED ACQUISITION COSTS": "0"  }]],  
    result = arr.map(a => a.reduce((acc, o) => Object.assign(acc, o), Object.create(null)));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }