JS中的for语句错误的主体

时间:2015-10-27 23:26:50

标签: javascript jshint

我正在绞尽脑汁,我已经阅读了之前已经回答的所有问题,但我觉得我只是错过了一些东西。

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; }

1 个答案:

答案 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?