Почему функция buildLegendItem не возвращает значение див?

Как можно исправить код, чтобы он выводил каждый элемент массива в отдельном div-е?
  • 16 марта 2024 г. 0:09
Ответы на вопрос 2
Функция buildLegendItem написана неправильно, она просто создает элемент div, но не возвращает его. Для того чтобы функция возвращала созданный элемент div, необходимо добавить return div; в конце функции. 

Вот исправленный код:

```javascript
function buildLegendItem(item) {
  var div = document.createElement('div');
  div.textContent = item;
  return div;
}

var legendItems = ['Item 1', 'Item 2', 'Item 3'];

legendItems.forEach(function(item) {
  var legendItem = buildLegendItem(item);
  document.body.appendChild(legendItem);
});
```

Теперь код будет выводить каждый элемент массива legendItems в отдельном div-е.
Когда вы используете фигурные скобки внутри метода map, Js ожидает, что вы будете явно указывать, что должно быть возвращено из функции, но внутри этих фигурных скобок у вас не стоит return перед вызовом buildLegendItem(x). В результате, ничего не возвращается из функции, переданной в map, и React не рендерит эти элементы. 

Уберите фигурные скобки (так результат функции будет возвращён автоматически), либо добавьте return перед buildLegendItem(x)
Похожие вопросы