【发布时间】:2026-02-12 10:40:02
【问题描述】:
在我的 Angular 6 应用程序中,我正在制作一个表格,其中包含来自 products 数组的内容,例如,
Ts:
products: any = {
"productOne": [
{
"id": 1, "product_name": "Product One",
"productOneProperties": [
{ "id": 1, "property_name": "Length", "property_value": "12cm" },
{ "id": 2, "property_name": "Width", "property_value": "10cm" },
{ "id": 3, "property_name": "Height", "property_value": "20cm" },
]
}
],
"productTwo": [
{
"id": 2, "product_name": "Product Two",
"productTwoProperties": [
{ "id": 1, "property_name": "Length", "property_value": "15cm" },
{ "id": 2, "property_name": "Width", "property_value": "12cm" },
{ "id": 2, "property_name": "Size", "property_value": "Medium" }
]
}
]
}
HTML:
<table>
<thead>
<tr>
<th>
Property Details
</th>
<th>
{{productOneDetails}}
</th>
<th>
{{productTwoDetails}}
</th>
</tr> <br>
</thead>
<tbody>
<tr *ngFor="let item of mergedArray">
<td> {{ item.property_name }} </td>
<td> {{ item.type === "one" ? item.property_value: '-' }} </td>
<td> {{ item.type === "two" ? item.property_value: '-' }} </td>
</tr>
</tbody>
</table>
这里我有两个单独的产品和属性,其中属性名称(例如Length 和Width)对于具有不同值的两种产品重复..
工作堆栈闪电战: https://stackblitz.com/edit/angular-9yzwss
当前结果:
Property Details Product One Product Two
Length 12cm -
Width 10cm -
Height 20cm -
Length - 15cm
Width - 12cm
Size - Medium
预期结果:
Property Details Product One Product Two
Length 12cm 15cm
Width 10cm 12cm
Height 20cm -
Size - Medium
请帮助我通过将重复的属性名称显示为唯一并显示相邻的值来实现预期结果。如果属性和值不存在,那么它需要具有 "-"。 .
请帮我将当前结果转换为预期结果..
【问题讨论】:
-
但两种产品的值不同,您还想删除吗?
-
@PardeepJain,您可以在预期结果中看到产品二下的值已达到顶部。如果您比较两个结果,您就会明白我的意思。
-
两个数组大小相同?
-
@Justcode,不,它会根据服务是动态的..两者的大小不同..
-
那么,当product_3来的时候,你会手动合并数组吗?
标签: javascript angular typescript angular5 angular6