【发布时间】:2010-12-25 18:14:23
【问题描述】:
每次我从 for-each 构造(PHP/Javascript)中“突破”出来时,我都觉得很脏
所以是这样的:
// Javascript 示例
for (object in objectList)
{
if (object.test == true)
{
//do some process on object
break;
}
}
对于大型对象列表,我会费力地构建一个更优雅的解决方案。但是对于小型列表,没有明显的性能问题,因此“为什么不呢?”它快速,更重要的是易于理解和遵循。
但它只是“感觉不对”。有点像 goto 语句。
遇到这种情况你是怎么处理的?
【问题讨论】:
-
我知道你在说什么,但每个人都在正确的轨道上——休息很好,特别是对于小列表。我的大列表通常来自数据库查询,如果我必须使用那里的 LIMIT 函数来只提取记录的子集。简短的回答——不要因为使用“break”或“continue”而感到难过
-
您的代码不会以这种方式工作,因为 for..in 运算符将始终遍历对象的键(字符串)。你的意思可能是这样的: for (var key in objectList) { var object = objectList[key]; ... }
标签: php javascript foreach