reduce方法内部的分解

问题描述 投票:0回答:3

我想知道是否有可能直接在JS的reduce方法中进行结构分解。我正在尝试做这样的事情:

使用此二维数组:

currency = [
    ["PENNY", 0.01],
    ["NICKEL", 0.05],
    ["DIME", 0.01],
    ["QUARTER", 0.25],
    ["ONE", 1],
    ["FIVE", 5],
    ["TEN", 10],
    ["TWENTY", 20],
    ["ONE HUNDRED", 100]
];

我想得到所有金额的总和。我的意思是这样的:

const [curr, amount] = change;

return change.reduce(amount => amount + b);

甚至更好的方法是直接在reduce方法的回调内部破坏货币数组。

javascript ecmascript-6 reduce destructuring
3个回答
1
投票

如果您想加总金额:

const sum = currency.reduce((total, [_, amount]) => total + amount, 0);

每个子数组都被分解为面额名称和数量。


0
投票

有很多变体。在不改变数据结构的情况下:

return currency.map(element => element[1]).reduce((acc, curr) => acc + curr);

0
投票

let currency = [
    ["PENNY", 0.01],
    ["NICKEL", 0.05],
    ["DIME", 0.01],
    ["QUARTER", 0.25],
    ["ONE", 1],
    ["FIVE", 5],
    ["TEN", 10],
    ["TWENTY", 20],
    ["ONE HUNDRED", 100]
];
console.log(currency.reduce((acc, cur) => {return acc + cur[1]},0))
© www.soinside.com 2019 - 2024. All rights reserved.