首页 > 解决方案 > 如果第二个数组匹配,则对第一个数组中的数字求和

问题描述

我有 2 个如下所示的数组:

amountArray = ["200","150","500","100"];
currencyArray = ["EUR","EUR","USD","USD"];

如果第二个数组匹配,我想从第一个数组中求和。我想得到的结果:

totalAmount = "350 EUR | 600 USD";

标签: javascriptarrays

解决方案


您可以使用 aMap来收集相同的货币并获得合并的值。

let amounts = ["200", "150", "500", "100"],
    currencies = ["EUR", "EUR", "USD", "USD"],
    result = Array
        .from(
            currencies.reduce(
                (m, c, i) => m.set(c, (m.get(c) || 0) + +amounts[i]),
                new Map
            ),
            ([k, v]) => [v, k].join(' ')
        )
        .join(' | ');

console.log(result);


推荐阅读