我有一系列的银行帐户,都是从GET请求中收到的。
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
{
if tabBarVC?.tabBar.selectedItem?.tag == 5
{
tabBarVC?.present(SideMenuManager.default.menuRightNavigationController!, animated: true, completion: nil)
return false
}
return true
}
帐户数组就是这样的:
<div class="card" *ngFor="let acc of accounts">{{acc.iban}} ({{acc.currency}})>
如何动态查找具有相同iban的帐户,从列表中删除其中一个,然后将删除的帐户的币种添加到另一个帐户?
预期输出为:
this.accounts = [
{ iban : '123' , currency: 'EUR' },
{ iban: '123' , currency: 'USD' },
{ iban: '234' , currency: 'EUR' }
]
答案 0 :(得分:1)
您可以使用Object.values()和Array.prototype.reduce()合并具有相同IBAN的帐户,并以逗号加入货币。
使用reduce
,您可以在accounts
数组上进行迭代,并构建将iban
映射到合并帐户的中间字典,然后使用Object.values()
枚举字典条目返回一个数组。
const accounts = [
{ iban : '123' , currency: 'EUR' },
{ iban: '123' , currency: 'USD' },
{ iban: '234' , currency: 'EUR' }
];
const result = Object.values(accounts.reduce((acc, { iban, currency }) => {
acc[iban] = acc[iban]
? { ...acc[iban], currency: acc[iban].currency + ', ' + currency }
: { iban, currency };
return acc;
}, {}));
console.log(result);