天天看點

forin為什麼不按照順序周遊對象

var obj = {
  1: 'a',
  3: 'c',
  2: 'b',
}

for (const key in obj) {
    console.log(key)
}
// '1' '2' '3'
           

原因:for-in在周遊時,先周遊出整數屬性(integer properties,按照升序),然後其他屬性按照建立時候的順序周遊出來。

如果想要按照指定順序周遊真麼辦,可以把key值調整為非整數屬性

var obj = {
'+1': 'a',
'+3': 'c',
'+2': 'b',
}

for (const key in obj) {
    console.log(+key)
}
// 1 2 3
// 注意:這裡是數值型