在使用 *ngFor 遍历时需要从 Angular 中的 Array 过滤一些数据
Need to filter some data from Array in Angular while traversing with *ngFor
我有一个包含一些对象元素的数组。我想从下面的数组中获取第一个具有“mandatory: false”的对象和第一个具有“mandatory: true”的元素。
我需要从下面的列表中获取 UI 中的州和城市。
countryDetailsArray: Array(5)
0: {id: 278, name: "State", mandatory: false}
1: {id: 281, name: "Zone", mandatory: false}
2: {id: 284, name: "City", mandatory: true}
3: {id: 272, name: "Building", mandatory: true}
4: {id: 292, name: "Street", mandatory: true}
<div *ngFor="let countryData of countryDetailsArray;">
<div>
<button>
{{countryData.name}}
</button>
</div>
</div>
我不会尝试在 HTML 中这样做,最好在 .ts 文件中将其作为函数 returns 一个包含您想要的两个元素的新数组.该函数看起来像这样:
countryDetailsArray = [
{id: 278, name: "State", mandatory: false},
{id: 281, name: "Zone", mandatory: false},
{id: 284, name: "City", mandatory: true},
{id: 272, name: "Building", mandatory: true},
{id: 292, name: "Street", mandatory: true},
]
getFirstOfEach() {
let array = []
array.push(this.countryDetailsArray.find(item => item.mandatory === false));
array.push(this.countryDetailsArray.find(item => item.mandatory === true));
return array
}
我有一个包含一些对象元素的数组。我想从下面的数组中获取第一个具有“mandatory: false”的对象和第一个具有“mandatory: true”的元素。
我需要从下面的列表中获取 UI 中的州和城市。
countryDetailsArray: Array(5)
0: {id: 278, name: "State", mandatory: false}
1: {id: 281, name: "Zone", mandatory: false}
2: {id: 284, name: "City", mandatory: true}
3: {id: 272, name: "Building", mandatory: true}
4: {id: 292, name: "Street", mandatory: true}
<div *ngFor="let countryData of countryDetailsArray;">
<div>
<button>
{{countryData.name}}
</button>
</div>
</div>
我不会尝试在 HTML 中这样做,最好在 .ts 文件中将其作为函数 returns 一个包含您想要的两个元素的新数组.该函数看起来像这样:
countryDetailsArray = [
{id: 278, name: "State", mandatory: false},
{id: 281, name: "Zone", mandatory: false},
{id: 284, name: "City", mandatory: true},
{id: 272, name: "Building", mandatory: true},
{id: 292, name: "Street", mandatory: true},
]
getFirstOfEach() {
let array = []
array.push(this.countryDetailsArray.find(item => item.mandatory === false));
array.push(this.countryDetailsArray.find(item => item.mandatory === true));
return array
}