我有一個對象數組:{2:'李四',1:'張三',3:'王五'},想按這個順序輸出。用v-for遍歷的話,會根據ASCII順序,輸出:{1:'張三',2:'李四',3:'王五'}我只想到增加索引,來實現功能。{1: {2:李四},2: {1:張三} ,3: {3:王五} }但這樣需要改不少代碼。請問有沒有更優雅的方式,修改v-for的渲染順序?(以上查了文檔、百度未找到方案)只能自定義過濾器么?但過濾器相當于跟特定數組順序綁定。無法解耦。還望指教!16分鐘后更新我想了一下:可不可以封裝一個過濾器函數。每次把“固定的對象數組”作為參數傳進去,然后這個函數,通過pop,shift啥的,返回想要的結果。這樣就可以重用了。雖說寫函數麻煩,但以后就方便了。【 本貼已經解決,正解是我下面的答案?!扛兄x上邊兩位朋友的指教。
2 回答

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
這個做不到,至少我做不到。
對象中是沒有順序的,所以在訪問的時候一定會按照ASCII去訪問key。
你可以考慮在定義的時候就按照數組定義:
[{2:'李四'}, {1:'張三'}, {3:'王五'}]
數組是按照順序訪問的。

慕慕森
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}}取到值!
添加回答
舉報
0/150
提交
取消