如何使一个json文件上的循环?



我必须处理一个JSON文件。

In JSON BLOCAGES ->BLOCAGE祝辞我必须检索QTEDTE

这是我文件JSON

我的问题是,我显示QTEDTE一次。

现在,我有这个=>输入图片描述

我想得到这个结果=>输入图片描述

我错过了数组元素[1][2],我怎么能从循环中添加它们?

<这是我方法strong>prepareDataForBlocage ()

prepareDataForBlocage(response) {
this.spinners.blockDetails = false;
if (response['RETURNCODE'] == "OKK00") {

let [variable1] = response['BLOCAGES']['BLOCAGE'];
this.statusLine = {
quantity: variable1['QTE'],
update: variable1['DAT'],
};
}
}

我HTML

<table class="table table-striped">
<tr style="background-color: #f8f9fa; font-weight: bold;">
<td style="width: 13%;">Quantity</td>
<td style="width: 13%;">Reason</td>
<td style="width: 13%;">Date</td>
<td style="width: 13%;">Référence</td>
</tr>
<tr  *ngIf="statusLine.quantity != 0" >
<td>
{{statusLine.quantity | number:'1.2-2' }}
</td>
<td></td>
<td>
{{statusLine.update | dateddmmyyyy }}
</td>
<td>
</td>
</tr>
</table>

我在你的代码中看到两个问题

第一:

let [variable1] = response['BLOCAGES']['BLOCAGE'];
/// is the same as
let variable1 = response['BLOCAGES']['BLOCAGE'][0];
/// That means you only get the first element of your list

第二点是不要在模板中遍历数组。

你可以试试这样写:

this.myList = response['BLOCAGES']['BLOCAGE']
.filter(blocage => blocage['QTE'] != 0)
.map(blocage => ({
quantity: blocage['QTE'],
update: blocage['DAT'],
}));
<tr *ngFor="let elem of myList" >
<td>
{{elem.quantity | number:'1.2-2'  }}
</td>
<td></td>
<td>
{{elem.update | dateddmmyyyy  }}
</td>
<td>
</td>
</tr>