使用“for in”的最佳方式

best way to use "for in"

本文关键字:最佳 方式 in for 使用      更新时间:2023-09-26

以前工作的代码在我添加 enyo.js 后现在在循环中失败了。我怀疑当我使用for(var ls in list)即使长度为 0,它也会循环通过。当我调试时,我发现它正在考虑将"findIndex"视为列表中的值之一并进入循环。我有几个地方使用 for with in,我想找出一种过滤掉"findIndex"或任何无效索引的最佳方法,以便只有有效元素进入循环

for(var ls in list)
  {
    var lin = list[ls].rb ;
  }

如果你列出是一个数组,只需使用常规的for循环。这通常不是一个好主意用于...正是出于这个原因,也因为无法保证顺序。

如果必须使用for...in请使用 hasOwnProperty 检查:

for (var ls in list)
{
   if (list.hasOwnProperty(ls)) {
       var lin = list[ls].rb;
       // ...
   }
}

当然,如果您只关心您是否拥有rb属性,您可以对此进行测试:

if (list[ls].rb) {
    var lin = list[ls].rb;
}

甚至:

var lin = list[ls].rb;
if (lin) {
    // do whatever you needed to do with lin
}