为了账号安全,请及时绑定邮箱和手机立即绑定

如何让v-for按特定的顺序, 输出对象数组?

如何让v-for按特定的顺序, 输出对象数组?

慕桂英546537 2018-08-05 13:41:06
我有一个对象数组:{2:'李四',1:'张三',3:'王五'},想按这个顺序输出。用v-for遍历的话,会根据ASCII顺序,输出:{1:'张三',2:'李四',3:'王五'}我只想到增加索引,来实现功能。{1: {2:李四},2: {1:张三} ,3: {3:王五} }但这样需要改不少代码。请问有没有更优雅的方式,修改v-for的渲染顺序?(以上查了文档、百度未找到方案)只能自定义过滤器么?但过滤器相当于跟特定数组顺序绑定。无法解耦。还望指教!16分钟后更新我想了一下:可不可以封装一个过滤器函数。每次把“固定的对象数组”作为参数传进去,然后这个函数,通过pop,shift啥的,返回想要的结果。这样就可以重用了。虽说写函数麻烦,但以后就方便了。【 本贴已经解决,正解是我下面的答案。】感谢上边两位朋友的指教。
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞


这个做不到,至少我做不到。

对象中是没有顺序的,所以在访问的时候一定会按照ASCII去访问key。

你可以考虑在定义的时候就按照数组定义:

[{2:'李四'}, {1:'张三'}, {3:'王五'}]

数组是按照顺序访问的。


查看完整回答
反对 回复 2018-08-09
?
慕慕森

TA贡献1856条经验 获得超17个赞

感谢楼上2位的指教。
我今天试了下,最终正确的写法是这样:

[
    {id:2,username:'李四'}, 
    {id:1,username:'张三'}, 
    {id:3,username:'王五'}
]

这样才能在v-for里边用list.键名输出值!
v-for="(value,key,index) in list
然后用{{value.username}}取到值!


查看完整回答
反对 回复 2018-08-09
  • 2 回答
  • 0 关注
  • 3732 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信