当前位置: 首页 > 知识库问答 >
问题:

如何在*ngfor[重复]中显示数组的对象数组

拓拔飞飙
2023-03-14

我有一个这样的数组

 tdata = {
    jam: [1, 2, 4, 5],
    ram: [11, 12, 34, 14],
    sam: [21, 22, 23, 24],
    jug: ["a", "b", "c", "d"],
    tam: [31, 32, 33, 34]
  };

我想打印/显示对象键,如jam,ram,sam作为表格标题,其值在各自的表格中与Pprimeng表格成角度。我尝试了各种方法,但无法正确显示。动态值的Primeng表

<p-table [columns]="cols" [value]="products">
    <ng-template pTemplate="header" let-columns>
        <tr>
            <th *ngFor="let col of columns">
                {{col.header}}
            </th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-rowData let-columns="columns">
        <tr>
            <td *ngFor="let col of columns">
                {{rowData[col.field]}}
            </td>
        </tr>
    </ng-template>
</p-table>

如果我想显示,我需要数组在表单中自动显示

tdata = [
        {jam:1,ram:11,sam:21,jug:"a",tam:31},
        {jam:2,ram:12,sam:22,jug:"b",tam:32},
        {jam:3,ram:34,sam:23,jug:"c",tam:33},
        {jam:5,ram:14,sam:24,jug:"d",tam:34 }
      ]

tdata中的值可能会动态更改,它们也来自后端和密钥

共有2个答案

蓬野
2023-03-14

您可以使用keyvaluepipe。

<div *ngFor="let item of tdata | keyvalue">
  {{ item.key }}
</div>

朱保赫
2023-03-14

首先获取数组的长度。然后迭代Object.keys以获取每个键的值以获取新行。

tdata = {
    jam: [1, 2, 4, 5],
    ram: [11, 12, 34, 14],
    sam: [21, 22, 23, 24],
    jug: ["a", "b", "c", "d"],
    tam: [31, 32, 33, 34]
};

let tdataFormatted = [];
let rowLength = Object.keys(tdata)[0].length; //get the length of the first property.

let i = 0;
while (i < rowLength) {

    let newObj = {};

    for (key in tdata) {
        newObj[key] = tdata[key][i];
    }

    tdataFormatted.push(newObj)

    i++;
}

console.log(tdataFormatted);
 类似资料:
  • 我在Angular2中创建一个由对象数组而不是字符串支持的select时遇到了麻烦。我知道如何使用ngOptions在AngularJS中实现这一点,但在Angular2中似乎行不通(我使用的是Alpha42)。 “select String”是一个简单的基于字符串的选择,它工作得很好。 “通过双向绑定选择对象”是我尝试使用双向绑定的尝试。不幸的是,它以两种方式失败--当页面加载时,select显

  • 我想使用JavaScript在动态表中显示一个对象数组。 这就是它的样子。我想知道如何将它显示为一个动态表。

  • 我有一个数组。如何按类型、名称和大小以及递增量找到双重许可。增加数量后删除相同的。

  • 我对编程很陌生,我找不到我的问题的解决方案,你能给我解决方案吗? 我有这个JSON文件: 在我的js中需要类似这样的东西(但我想导入我的JSON以获得像这样的数组): 我不知道不使用jQuery该怎么做。 我已经试过了: 这几乎是我想要的,但当我在代码中使用它时,它不起作用,因为我不想要对象,而是像上面所说的和数组。

  • 我希望循环通过一个对象,并对数据进行一些更改。我不是100%如果我实际上处理一个对象或一个数组包含多个对象,所以任何帮助都很感激。 下面是我的目标: 提前致谢

  • 如何在两个属性之后对对象数组进行分组?在以下情况下是否可以使用减少? 例如:按国家和城市将以下数组分组,并对“年龄”属性求和: /*预期结果:*/