使用* ngFor角度迭代对象数组

问题描述 投票:0回答:2

[数组由对象的键和值对组成。我要遍历以获取对象的键和值。

var arr = [{fruit: banana},{color: red},{city: London},{count: 10},{price: 100$}];

我尝试使用键值管道

<div class="bx--row" *ngFor="let obj of arr | keyvalue; let i = index;">
     <span class="bx--col-xs-5 bx--col-md-5"> {{obj.key}} :</span>
     <span class="bx--col-xs-5 bx--col-md-5">{{obj.value}} </span>
</div>

预期结果:

fruit : banana
color: red
city: London
count : 10
price : 100$
arrays angular object key-value ngfor
2个回答
0
投票

您可能需要两个*ngFor指令。尝试以下操作

<div class="bx--row" *ngFor="let obj of arr; let i = index;">
  <ng-container *ngFor="let item of obj | keyvalue">
    <span class="bx--col-xs-5 bx--col-md-5"> {{item.key}} :</span>
    <span class="bx--col-xs-5 bx--col-md-5">{{item.value}} </span>
  <ng-container>
</div>

或者您可以将单个对象合并到控制器中的单个对象,并使用单个*ngFor对其进行迭代。

控制器

const arr = [{fruit: 'banana'},{color: 'red'},{city: 'London'},{count: 10},{price: '100$'}];
const obj = Object.assign({}, ...arr)

模板

<div class="bx--row" *ngFor="let item of obj | keyvalue; let i = index;">
  <span class="bx--col-xs-5 bx--col-md-5"> {{item.key}} :</span>
  <span class="bx--col-xs-5 bx--col-md-5">{{item.value}} </span>
</div>

0
投票

您可以这样操作

HTML中

<div class="bx--row" *ngFor="let obj of arr">
     <span class="bx--col-xs-5 bx--col-md-5"> {{objectKeys(obj)}} :</span>
     <span class="bx--col-xs-5 bx--col-md-5">{{obj[objectKeys(obj)]}} </span>
</div>

以ts为单位

objectKeys(obj){
 return Object.keys(obj)[0];
}
© www.soinside.com 2019 - 2024. All rights reserved.