let map = {}
map['彩妝墻'] = 1
map['咨詢桌'] = 2
map['禮品桌'] = 3
console.log(map)
// {彩妝墻: 1, 咨詢桌: 2, 禮品桌: 3}
展開后發(fā)現(xiàn)順序被默認(rèn)改變
咨詢桌: 2
彩妝墻: 1
禮品桌: 3
通過使用:Object.keys(map)
得到如下結(jié)果:
console.log(Object.keys(map))
// ['彩妝墻', '咨詢桌', '禮品桌']
咋一看沒有問題但是我們再看看他的值
但是通過使用:Object.values(map)
得到結(jié)果:
console.log(Object.values(map))
[1, 2, 3]
看到?jīng)],順序被默認(rèn)排序了,其實(shí)不管是key還是value只要是數(shù)字就會被默認(rèn)的進(jìn)行排序
解決方案一
使用字符串即可,將數(shù)字改成字符串
解決方案二
使用 new Map() 來解決
let map = new Map()
map.set(2, '2')
map.set(3, '3')
map.set(1, '1')
console.log(map)
// Map(3) {2 => '2', 3 => '3', 1 => '1'}
data.values()
// {'2', '3', '1'}
data.keys()
// {2, 3, 1}
以上就是解決默認(rèn)排序問題的相關(guān)解決方案