gpt4 book ai didi

angular - 在Angular中按对象属性对元素进行分组

转载 作者:行者123 更新时间:2023-12-05 00:58:05 30 4
gpt4 key购买 nike

在 Ionic 4 (Angular) 中,我想为项目的每个唯一“类型”属性创建一个 div,并在该 div 下添加具有相同“类型”的所有元素。

比如我想输出如下数组:

items = [
{
type: 'type1',
question: 'question1',
answer: 'answer1'
},
{
type: 'type2',
question: 'question2',
answer: 'answer2'
},
{
type: 'type2',
question: 'question3',
answer: 'answer3'
},
{
type: 'type3',
question: 'question4',
answer: 'answer4'
},
];

这样:

<div id="type1">
<div class="item">
<h1>question1</h1>
<div>answer1</div>
</div>
</div>

<div id="type2">
<div class="item">
<h1>question2</h1>
<div>answer2</div>
</div>

<div class="item">
<h1>question3</h1>
<div>answer3</div>
</div>
</div>

<div id="type3">
<div class="item">
<h1>question4</h1>
<div>answer4</div>
</div>
</div>

最佳答案

首先,您应该按类型对数据进行分组:

groupByType(array){
return array.reduce((r, a) => {
r[a.type] = r[a.type] || [];
r[a.type].push(a);
return r;
}, Object.create(null));
}

然后尝试使用键值管道显示您的数据:

<div *ngFor="let item of newItems | keyvalue">
<div id="{{item.key}}">
{{item.key}}
<div class="item" *ngFor="let value of item.value">
<div>{{value.question}}</div>
<div>{{value.answer}}</div>
<br>
</div>
</div>
</div>

检查 DEMO .

关于angular - 在Angular中按对象属性对元素进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58693337/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com