我有一个地址类型如下的数组:
var addressTypes = [
{ "id": 748, "type_id": 0, name:"Previous"},
{ "id": 749, "type_id": 0, name:"Previous"},
{ "id": 750, "type_id": 1, name:"Vacation"}
];
在我看来,我应该像这样显示特定地址类型的名称及其出现次数:
<span ng-bind="address.name + ' Address ' + ($index == 0 ? '' : $index + 1"</span>
我如何手动计算和分配特定地址类型的出现次数以在 View 中使用它而不是 $index。
例如,在我的结果数组中我想得到这样的东西:
[ { "id": 748, "type_id": 0, namne: "Previous", count: 1},
{ "id": 748, "type_id": 0, name: "Previous", count: 2},
{ "id": 750, "type_id": 1, name: "Vacation", count: 1 }
]
最佳答案
您可以使用以下代码实现此目的,
addressTypes.forEach(function(itm) {
this[itm['id']] = (this[itm['id']] || 0) + 1;
itm.count = this[itm['id']];
}, {});
只需使用 forEach
及其上下文接收器。这足以做到这一点。请注意,当您使用上下文接收器时,您不能使用箭头功能。因为箭头函数不允许您手动设置上下文。
关于javascript - 为数组中的项目设置出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57393611/