javascript - 使用 "for in"的最佳方法

标签 javascript enyo

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

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

  }

最佳答案

如果列表是一个数组,只需使用常规的 for 循环即可。使用 for...in 通常不是一个好主意正是出于这个原因,并且还因为不能保证顺序,所以使用数组。

如果您必须使用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
}

关于javascript - 使用 "for in"的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28225131/

相关文章:

javascript - 一个接一个的多个 Bootstrap Modals

javascript - 在 React.memo 中需要 useCallback 吗?

javascript - 找出每个子数组中任意一个元素可以形成的最大乘积

javascript - 使 enyo.canvas 适合

javascript - 我如何知道 enyo.Model 是否被修改?

javascript - D3 仅加载一个单元格的数据

javascript - 如何在 ECMA5(IE11) 中扩展 javascript 类?

javascript - Enyo js中,瀑布流和瀑布流的区别

javascript - 将 Chrome 扩展程序转换为 Opera 扩展程序

sqlite - 如何从 db [HTML5] 中获取两个相同的字段数据?