如何显示从* ngFor Loop Angular 6生成的类似结果的计数?

时间:2018-10-24 09:08:54

标签: javascript arrays angular count

我有一个get请求,该请求通过* ngFor循环在视图中显示对象数组。我似乎无法弄清楚如何在下面获得所需的结果。这是一个非常基本的示例,可让您了解我要实现的目标。

data = [
    {
   "name": "Bill",
   "job" : "Builder"
 },
 {
   "name": "John",
   "job":  "Cook"
 },
 {
   "name": "Bill",
   "job" : "Builder"
 }
]

然后,当创建* ngFor循环时,我希望能够显示如下内容:

Bill [2]
John [1]

任何建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

Group your results,然后在循环中使用它们:

Fiddle

答案 1 :(得分:0)

您可以根据当前数据创建新的数据结构,并计算名称可见的次数:

data = [
    {
   "name": "Bill",
   "job" : "Builder"
 },
 {
   "name": "John",
   "job":  "Cook"
 },
 {
   "name": "Bill",
   "job" : "Builder"
 }
]

const count = {};
data.forEach(d => {
    count[d.name] = count[d.name] + 1 || 1;
});

console.log(count);

输出:

{ Bill: 2, John: 1 }

您应该能够显示名称并从那里开始计数。