如何知道你正处于对象for循环的最后一轮

How to know you're at the last pass of a for loop through object?

本文关键字:最后 一轮 循环 何知道 正处于 对象 for      更新时间:2023-09-26

我有一个像这样的对象:

var obj = { thing_1 : false,
            thing_2 : false,
            thing_3 : true,
            thing_4 : false,
            thing_5 : true
           }

我现在循环遍历这个对象并搜索为真的对象键,如下所示:

  for (value in obj){  
    if (obj[value] === true ){
      // do something
    }
  }

我怎么知道当我到达最后一个循环时其中一个键为真?

您可以 count object元素与Object.keys(obj).length,然后检查循环内查找您何时使用最后一个。

object .keys(obj)方法返回给定对象自身可枚举属性的数组,顺序与for…In循环(不同之处在于for-in循环也枚举原型链中的属性)

的例子:

var obj = {
  thing_1: false,
  thing_2: false,
  thing_3: true,
  thing_4: false,
  thing_5: true
};
var count = 0;
for (var value in obj) {
  count++;
  if (count == Object.keys(obj).length) {
    console.log('And the last one is:');
  }
  console.log(obj[value]);
}

注意:您可以想象,这对IE < 9有一些问题…
您可以创建自己的自定义函数或继续使用polifill