如何打破或继续Ext.each

dfi*_*ovi 22 extjs

Ext.each(boundsExtend, function(value)
{
    if(value != record.ID) break;
});
Run Code Online (Sandbox Code Playgroud)

那么我该如何打破或继续Ext.each循环呢?

Bri*_*kau 41

来自文档:

如果提供的函数返回false,则迭代停止,此方法返回当前索引.

因此,在OP的示例中(假设record在范围内且非空):

Ext.each(boundsExtend, function(value) {
  if (value != record.ID) {
    return false;
  }
  // other logic here if ids do match
});
Run Code Online (Sandbox Code Playgroud)

请注意,返回false完全退出循环,因此在这种情况下,第一个不匹配的记录将绕过任何其他检查.

但是我猜你真正要做的就是循环,直到你找到匹配的记录,做一些逻辑,然后使循环短路.如果是这种情况,那么逻辑实际上是:

Ext.each(boundsExtend, function(value) {
  if (value === record.ID) {
    // do your match logic here...
    // if we're done, exit the loop:
    return false;
  }
  // no match, so keep looping (i.e. "continue")
});
Run Code Online (Sandbox Code Playgroud)

任何其他未明确的值false(例如null默认情况下)将保持循环.

  • 返回任何虚假的东西. (21认同)