我正在绞尽脑汁,我已经阅读了之前已经回答的所有问题,但我觉得我只是错过了一些东西。
JSHint给出错误:
for的主体应该包含在if语句中,以过滤原型中不需要的属性。
你们如何解决这个错误?
function checkCollision(X, Y, arrayObjs) {
for (var obj in arrayObjs) {
var objX = (arrayObjs[obj].x / 101).toFixed(0);
var objY = (arrayObjs[obj].y / 83).toFixed(0);
//checking collision by checking character placement as well as enemies
if ((objX == (X / 101).toFixed(0)) && (objY == (Y / 83).toFixed(0))) {
//collision
return true;
}
}
return false; }
答案 0 :(得分:0)
不使用for in
循环,而是使用普通的for
循环,这样您就可以遍历数组而无需遍历原型:
function checkCollision(X, Y, arrayObjs) {
for (var i = 0, length = arrayObjs.length; i < length; i++) {
var objX = (arrayObjs[i].x / 101).toFixed(0);
var objY = (arrayObjs[i].y / 83).toFixed(0);
//checking collision by checking character placement as well as enemies
if ((objX == (X / 101).toFixed(0)) && (objY == (Y / 83).toFixed(0))) {
//collision
return true;
}
}
return false;
}
有关详细信息,请参阅以下Stack Overflow帖子:What does the JSLint error 'body of a for in should be wrapped in an if statement' mean?