【问题标题】:Javascript object traversal in wrong way [duplicate]以错误的方式遍历Javascript对象[重复]
【发布时间】:2016-01-13 16:41:40
【问题描述】:

我在 occupancy_list 中有一个 json 对象,如下所示:

我正在遍历对象如下:

for(var prop in occupancy_list)
{
     console.log(prop);
}

我以相反的顺序获取值。就像一开始是 2 号房间,然后是 1 号房间。我该如何解决?

【问题讨论】:

标签: javascript


【解决方案1】:

对象属性是未排序的,并且总是随机的。如果您需要订购 - 获取密钥,并以这种方式迭代它们:

Object.keys(occupancy_list).sort(function(a, b) {
   //sort logic
}).forEach(key) {
   //logic on each key
});

【讨论】:

  • “对象属性未排序,可能总是随机的”。这不再是真的了。例如,对于名称不是数字的属性,插入顺序用于迭代。见2ality.com/2015/10/property-traversal-order-es6.html
  • @DenysSéguret -- 哪一部分?
  • @DenysSéguret anymore - 但是旧版浏览器呢?我认为假设它们不正常比相反更安全。
猜你喜欢
  • 1970-01-01
  • 2017-07-10
  • 2020-10-08
  • 2016-07-08
  • 1970-01-01
  • 2011-12-26
  • 2015-09-15
  • 2017-08-30
  • 2015-03-20
相关资源
最近更新 更多