@afonin_vlad

Поиск ошибки в js-коде?

Помогите найти ошибку в этом коде, есть в отдельном файле js список людей, во втором js реализация, именно во втором файле проблема. Ошибка в name.length. Cannot read property length. Код прилагаю
document.addEventListener('DOMContentLoaded', function () {
  function getAllNames(users) {
    return users.map(function (user) {
      let name = user.first_name;
      
      return {
        name: name,
        length: name.length
      };
    });
  }
  
  getAllNames(users);

  const usersListData = getAllNames(users);
  const ulList = document.querySelector('.users-list');

  usersListData.forEach(user => {
    ulList.insertAdjacentHTML('beforeend', `<li class="user-info">User: ${user.name}, string length: ${user.length}</li>`);
  });

});
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 2
@choupa
Архитектор (обычный, который строит)
1. Предположу, что переменная name вот здесь
let name = user.first_name;
не получает строковое значение. Поэтому и свойства length у неё нет.

2. Зачем здесь
return {
    name: name,
    length: name.length
};

отдавать и переменную, и отдельно её свойство length !? Тот, кто получил name, если ему потребуется сам возьмёт от неё length. Как вы пишите, делать не надо.
Ответ написан
Комментировать
@Arik
может так?
function getAllNames(users) {
    return users.map(function (user) {
      let name = user.first_name;
      
      return name ? name : '';
    });
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы