【发布时间】:2019-03-29 16:51:45
【问题描述】:
我有很多人与相关团队。我想显示记录中的所有人,但我只想显示他们的团队名称一次。
意思是,如果 v-for 循环遇到这个特定的团队名称,它应该将它放在一个新的临时数组中以表示它应该是唯一的,然后当它再次遇到该团队名称时,通过该临时数组检查它并阻止它再次显示。
示例 HTML 代码:
<div id="a-list">
<div v-for="person in people">{{person.Name}}, {{person.Team}}</div>
</div>
示例 Vue 代码:
var crew = new Vue({
el: "#a-list",
data: {
people:
[ { "Name": "Richard","Team":"DMS"}, { "Name": "Mark","Team":"VV"}, { "Name": "Steve","Team":"VV"}, {"Name":"Koji","Team":"MZ"}, {"Name":"Jamie","Team":"VV"} ]
}
});
预期输出:
Richard, DMS
Mark, VV
Steve,
Koji, MZ
Jaimie,
这可以直接从 v-for 循环而不是在 JS 文件中执行吗?
已编辑以显示更多非连续数据
更新:正如 Fabio 所指出的,除非团队的顺序首先在输出中按顺序排列,否则上述场景没有多大意义。所以他的答案是正确的。
【问题讨论】:
-
也许你想改进数组结构?我认为,如果您将人员存储在以公司名称为键的数组中,那不是更好吗?像这样的东西:人:[DMS:{“理查德”},VV:{“马克”,“史蒂夫”,“杰米”},MZ:{“Koji”},]
-
有了这个输出,我可以认为 Jaimie 在 MZ 团队,对吗?
-
不,Jamie 在 VV 团队。但是考虑到你所说的数据如果不是按团队排序就没有意义,那么我认为你是对的。
标签: javascript arrays vue.js