Допустим, у меня есть этот массив:

var foo = [{name: "one", number: 1},{name: "two", number: 2},{name: "three", number: 3}]

Теперь я хочу вывести сумму всех чисел в div. Я придумал это:

var bar = 0
foo.map((n) => { bar = bar + n.number })
    
return(
    <div>{bar}</div>
)

Можно / рекомендуется сложить все числа, просто используя пробел между тегами div? <div>{here}</div>

0
reichenwald 2 Сен 2020 в 17:36

2 ответа

Лучший ответ

Я бы использовал вместо этого reduce:

<div>{foo.reduce((a, { number }) => a + number, 0)}</div>

Но хотя это возможно, я думаю, что это слишком много для встроенного JSX. Я бы предпочел объявить сумму выше.

2
CertainPerformance 2 Сен 2020 в 14:38

Используйте Array.reduce

<div>{foo.reduce((sum, i)=>sum+i.number, 0)}</div>
1
Sumedh Chakravorty 2 Сен 2020 в 14:40