Разрушение внутри метода сокращения - PullRequest
0 голосов
/ 28 апреля 2020

Я хотел бы знать, возможно ли деструктурирование непосредственно внутри метода сокращения на JS. Я пытаюсь сделать что-то вроде этого:

С этим 2D-массивом:

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.

Ответы [ 3 ]

2 голосов
/ 28 апреля 2020

Если вы хотите суммировать суммы:

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

Каждый вложенный массив деструктурируется по имени и сумме номинала.

0 голосов
/ 28 апреля 2020

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))
0 голосов
/ 28 апреля 2020

Есть много вариантов. Без изменения структуры данных это:

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