为什么此标记为javaScript的继续无法正常工作?

| 我正在使用此代码来克服某些圈子重叠的问题:
iCantThinkOfAGoodLabelName:
x = genX(radius);
y = genY(radius);
for(i in circles) {
  var thisCircle = circles[i];
  if(Math.abs(x-thisCircle[\"x\"])+Math.abs(y-thisCircle[\"y\"])>radius*2) { //No overlap
    continue;
  } else { //Overlap
    continue iCantThinkOfAGoodLabelName; //<- Line 256
  }
  thisCircle = [];
}
但是,当到达continue语句时,chrome \的开发人员控制台将显示以下内容:
client.html:256 Uncaught SyntaxError: Undefined label \'iCantThinkOfAGoodLabelName\'
    
已邀请:
        标签应紧接循环之前
x = genX(radius);
y = genY(radius);

iCantThinkOfAGoodLabelName:
for(i in circles) {
    
        因为
iCantThinkOfAGoodLabelName:
必须在循环之前。
iCantThinkOfAGoodLabelName:
for (blah; blah; blah)
    ..
我认为您想要的是一个功能。
function iCantThinkOfAGoodFunctionName() {
    var x = genX(radius),
        y = genY(radius);

    for (i in circles) {
        var thisCircle = circles[i];
        if(Math.abs(x-thisCircle[\"x\"])+Math.abs(y-thisCircle[\"y\"])>radius*2) { //No overlap
            continue;
        } else { //Overlap
            iCantThinkOfAGoodFunctionName();
        }
        thisCircle = [];
    }
}
    
        标签名称和关联的循环之间不应有任何声明。
x = genX(radius);
y = genY(radius);
iCantThinkOfAGoodLabelName:
    for(i in circles) {
解决它。     
        我最近遇到了这个问题,并通过在Node.js版本
v0.8.x
的循环标签中使用所有小写字母来解决此问题。 使用
labelname:
iCantThinkOfAGoodLabelName:
可能会有所帮助。 其他人已经正确地纠正了您在标签上的位置。应该紧接在“ 10”循环之前。 Mozilla开发人员标签网络建议避免使用标签,而应首选调用函数或引发错误。如果可能,您可能会重新考虑使用它们的策略。 根据结果​​调用函数的示例:
var i, j;

for (i = 0; i < 3; i++) {
   for (j = 0; j < 3; j++) {   
      if (i == 1 && j == 1) {
         // we want to ignore and continue
      } else {
         // do work with these variables from inside the doWork function
         // (scoped to whatever scope `this` for loop is in)
         doWork.call(this, i, j); 
      }
   }
}
    

要回复问题请先登录注册