Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery是检查页面上是否存在项的最快方法_Jquery - Fatal编程技术网

Jquery是检查页面上是否存在项的最快方法

Jquery是检查页面上是否存在项的最快方法,jquery,Jquery,我正在做一个速度很重要的游戏。所以我想找到最快的方法来检查屏幕上是否有特定的图像 var myimages = ["Afbeeldingen/ballonBlauw.png", "Afbeeldingen/ballonGeel.png", "Afbeeldingen/ballonOranje.png", "Afbeeldingen/ballonRoos.png", "Afbeeldingen/ball

我正在做一个速度很重要的游戏。所以我想找到最快的方法来检查屏幕上是否有特定的图像

var myimages = ["Afbeeldingen/ballonBlauw.png",
            "Afbeeldingen/ballonGeel.png",
            "Afbeeldingen/ballonOranje.png",
            "Afbeeldingen/ballonRoos.png",
            "Afbeeldingen/balloonGroen.png",
            "Afbeeldingen/ballonRood.png"];
这些是我的图像,当添加一个新元素时,它会随机选择其中一个并将其设置为背景图像。我还有一个数组,用于跟踪页面上每个图像的数量:

var numberonscreen = [0,
                  0,
                  0,
                  0,
                  0,
                  0];
每次我添加一个元素时,它都会将+1添加到上面数组中的正确索引中

当一个元素被点击时,检查它所保存的图像并为正确的索引-1设置计数器的最佳方法是什么?我应该检查背景图像并与所有可能的图像进行比较,还是有更快的方法


感谢您,您可以添加一个带有图像索引的自定义属性,然后在需要检查图像时,获取该属性的值,然后减去数组中正确索引的计数。这样,您根本不需要枚举任何数组

比如:

$('.anImage').on('click', function() {
  var index = $(this).attr('theArrayIndexOfTheImage');
  numberonscreen[index]--;
});
一种可能性:

function handler() {
    ++numberonscreen[myimages.indexOf(this.getAttribute('src')];
}
使用native
indexOf
应该比您创建的循环更快

但我建议使用对象来代替:

var numberonscreen = {};
for(var i=0, l=myimages.length; i<l; ++i) // Initialize
    numberonscreen[myimages[i]] = 0;
function handler() {
    ++numberonscreen[this.getAttribute('src')];
}
var numberonscreen={};

对于(var i=0,l=myimages.length;如果速度很重要,我建议使用而不是jQuery。您可以使用图像索引添加自定义属性,然后在需要检查图像是哪个图像时,获取该属性的值,然后减去数组中正确索引的计数。尽管有可能,
indexOf
enumerates
myImages
。如果希望尽可能快地执行,则根本不需要枚举。您的第二个(也是推荐的解决方案)很好。