[转]Object.keys()和for in的排序问题

原文地址:https://www.jianshu.com/p/a086ff48be6e

  • Object.keys()和for in 具有相同的排列顺序
  1. 如果属性名的类型是Number,那么Object.keys返回值是按照key从小到大排序
  2. 如果属性名的类型是String或Symbol,那么Object.keys返回值是按照属性被创建的时间升序排序,且一定排在Number之后
var obj = {
  a:1,
  '2':1,
  '1':1,
  d:1,
  c:1,
  '3':1
}
obj.b=66;
Object.keys(obj) //["1", "2", "3", "a", "d", "c", "b"]
posted @ 2018-11-13 16:30  dirgo  阅读(2011)  评论(0编辑  收藏  举报