我正在尝试一种方法来处理一组消息,每条消息都有一个用户发送消息的id和meesage本身的内容。
一旦我获得了数组,我尝试将发送它的用户分开消息(以便稍后根据用户设置消息的样式)。
我尝试使用 for循环来读取数组,然后使用 if 来检查记录的用户是否发送了此类消息。
当我想阅读发送邮件的人时,会弹出问题。
起初我以为“我可能会写错了句子”,所以我使用了一些 consol.logs 来查看错误。我得到了一个有趣的情况:变量在控制台上正确显示,但是一旦我想评估 if ,我就会收到错误。
这是我正在运行的JavaScript代码
function processMeesages(allMessages) {
for (var i = 0; i <= allMessages.length; i++) {
console.log('allMessages[' + i + '].userMsg', allMessages[i].userMsg)
//Message from the logged user
if (allMessages[i].userMsg == user.id) {
chatMessages += '<div class="row ">' +
' <div class="col col-10 "></div>' +
' <div class="col card owner-container">' +
' <div class="item item-text-wrap owner">' +
allMessages[i].contenido +
' </div>' +
' </div>' +
' </div>';
}
//Messages from the other user
else {
chatMessages += '<div class="row ">' +
' <div class="col card message-container">' +
' <div class="item item-text-wrap message">' +
allMessages[i].contenido +
' </div>' +
' </div>' +
' <div class="col col-10 "></div>' +
' </div>';
}
}
//Once the for loop ends (What's down didn't show up on the console)
$rootScope.chatMessages = chatMessages;
console.log('chatMessages', chatMessages)
console.log('rootscopeChatMessages', $rootScope.chatMessages)
}
答案 0 :(得分:0)
好像你正在循环超过要求。您的数组只有两个元素,但您的for循环尝试循环3次,因此导致访问错误,因为allMessages[2]
未定义。
function processMeesages(allMessages) {
for (var i = 0; i < allMessages.length; i++) {
console.log('allMessages[' + i + '].userMsg', allMessages[i].userMsg)
.
.
.
.
}