for-in为什么不按照顺序遍历对象

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
// 注意:这里是数值型
posted @ 2021-09-28 18:23  wmui  阅读(697)  评论(0编辑  收藏  举报