JavaScript 對象中使用 {} 和 Map的默認(rèn)排序問題

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)解決方案

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容