нужно получить сумму всех свойств обьектов amount находящийся в массиве orders.
Я сделал это с помощью анонимный функции но никак не смог релизовать с помощью стрелочных функций.
const orders = [
{amount:250},
{amount:80},
{amount:3},
{amount:40}
];
let result = orders.reduce(function(current,order){
return current + order.amount;
}, 0)
alert(result);
ВОПРОС:Как задать initialValue в стрелочных функциях?
Мои попытки
let attempt = orders.reduce((index,current) => {index + current.amount}, 0)
initialValue - это обычный параметр.
Здесь больше важна особенность того, как разбирается стрелочная функция.
при указании (index,current) => index + current.amount данная функция эквивалентна следующей
function (index,current) { return index + current.amount}
В то же время при явном указании блока: (index,current) => {index + current.amount}
function (index,current) { index + current.amount }
Отсюда видно, что функция ничего не возвращает.
Для решения нужно либо добавить return: (index,current) => { return index + current.amount}
Либо обернуть тело функции в круглые скобки, что позволит парсеру отделить тело функции от следующего параметра:
(index,current) => (index + current.amount)
примеры:
const orders = [{
amount: 250
},
{
amount: 80
},
{
amount: 3
},
{
amount: 40
}
];
let result = orders.reduce(function(current, order) {
return current + order.amount;
}, 0)
console.log(result);
result = orders.reduce((current, order) => {
return current + order.amount;
}, 0)
console.log(result);
result = orders.reduce((current, order) => (current + order.amount), 0)
console.log(result);
Если вы в стрелочной функции используете блок {...} то вы должны вернуть из него значение оператором return. Если же в стрелочной функции ровно один оператор и он же является результатом функции, то ни блока {...}, ни оператора return не нужно
const orders = [
{amount:250},
{amount:80},
{amount:3},
{amount:40}
];
let result = orders.reduce((current, order) => current + order.amount, 0);
console.log(result);
result = orders.reduce((current, order) => {
return current + order.amount;
}, 0);
console.log(result);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости