JS中for语句中错误的正文

body of a for in statement error in JS

本文关键字:正文 错误 语句 for JS      更新时间:2023-09-26

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

JSHint给出错误:

应将for in的主体包装在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; }

不要使用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帖子:JSLint错误"for in的body应该包装在if语句中"是什么意思?