问题描述
|
我正在使用此代码来克服某些圈子重叠的问题:
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);
}
}
}