Как исправить «Неперехваченную ошибку типа: response.forEach не является функцией»?

#javascript #html

#javascript #HTML

Вопрос:

Я пытаюсь поместить сообщения на веб-сайт, используя innerHTML.

 function showRoomMessages(response) {
    console.log(response);
    var allMessages = document.getElementById('chat');
    allMessages.innerHTML = "";
    response.forEach(function (message){
        allMessages.innerHTML  = "<div class='message'>"   message.description  "<br>"   "verstuurd om: "   message.created_at   " door: "   message.user.name "</div>";
    });
}
  

Ответ — это объект, заполненный сообщениями и информацией о сообщении.

Комментарии:

1. Что такое response ?

2. Можете ли вы показать, что такое response?

3. Таким образом, response не является массивом….

4. Я добавил информацию об ответе

5. Если response это объект, вы не можете использовать forEach . forEach это метод из класса Array.

Ответ №1:

Я думаю, что ваш ответ — это объект, а не массив, для перебора объекта вы можете использовать Object.keys()

Пример:

    Object.keys(response).forEach(function (key){
        allMessages.innerHTML  = "<div class='message'>"   response[key].description  "<br>"   "verstuurd om: "   response[key].created_at   " door: "   response[key].user.name "</div>";
    });
  

Также обратите внимание, что теперь я использую response[key] для доступа к значению ключа объекта.