igKey
- это один из ключей ваших ингредиентов, например, bacon
. Теперь это ищется в ингредиентах с
props.ingredients[igKey]
, в результате чего получается сумма, 5
в данном случае. Теперь это используется для создания массива такой длины:
Array(5) // { length: 5 }
Теперь этот массив является разреженным массивом, в нем ничего нет. Чтобы иметь возможность перебирать его с map
, он должен быть заполнен неопределенными значениями, поэтому этот разреженный массив распределяется в новый массив, который превращает его в заполненный массив:
[...Array(5)] // { length: 5, 0: undefined, 1: undefined, 2: ... }
Теперь этот пустой массив с 5 записями будет отображен в массив с 5 ингредиентами Burger.
Кстати, более элегантный ИМО:
Array.from(
{ length: props.infredients[igKey] },
(_, i) => <BurgerIngredient key={igKey + i} type={igKey}/>
)