javascript - 在 VueJS 中循环包含两个不同数组的对象

标签 javascript html arrays vue.js

我目前正在开发一个用 VueJS 编写的聊天程序,在尝试显示具有给定时间戳的消息时遇到问题,因为我需要在包含两个数组(消息数组和时间戳数组)的对象内循环

我的数据对象如下所示:

messages: [     //saving text-messages of each chatroom in order (0 => chatroom1, 1 => chatroom2, ..)
        {      //chatroom1 with static data for testing
           text: ["first message chatroom1", "second message chatroom1"],
           time: ["08:38", "09:02"]
        },
        {      //chatroom2
           text: [],
           time: []
        },
        {      //chatroom3
           text: [],
           time: []
        }
]

当我尝试仅循环遍历 text[] 数组时,我的代码将如下所示:

<p class="message-class message-send" v-for="messages in messages[values.num].text">{{ messages }}</p>

还给我

<p class="message-class message-send">first message chatroom1</p>   //messages[0].text[0]
<p class="message-class message-send">second message chatroom2</p>  //messages[0].text[1]

[values.num] 是为了选择特定数据而传递的所选聊天室的编号(0 代表 chatroom1,...)

当尝试在一个循环中迭代文本和时间时(当然我希望时间显示在每一条文本消息之外,而不是在所有消息之后),我认为与此类似的东西应该可以完成工作:

<div v-for="messages in messages[values.num]">
       <p class="message-class message-send">{{ messages.text }}</p>
       <span class="message-time-send">{{ messages.time }}</span> 
</div>

本例中的问题是我显示整个文本和时间数组,而没有迭代数组本身。

尝试类似的事情

<p class="message-class message-send">{{ messages.text[some number] }}</p>

也不起作用。

有谁能帮我解决这个问题吗?或者我应该考虑尝试以不同的方式构建消息对象

最佳答案

这应该有效。

<div v-for="(message, index) in messages[values.num].text">
   <p class="message-class message-send">{{ message}}</p>
   <span class="message-time-send">{{ messages[values.num].time[index] }}</span> 
</div>

关于javascript - 在 VueJS 中循环包含两个不同数组的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833475/

相关文章:

javascript - While 循环在 P5.js 函数中不起作用

javascript - 如何验证输入类型 ="password"

html - 是否可以选择前面没有文本的元素?

javascript - 当我们从下拉菜单中选择一个选项时动态添加输入类型

html - 带有子菜单但父链接未保持事件状态的垂直菜单

arrays - std.algorithm.remove() 复制数组项?

php - 通知 : Array to string conversion with date

javascript - 网站在右侧加载,然后转移到其实际位置

javascript - 我可以让 ng-repeat 转到新的表格行吗

c++ - 存储结构的动态数组