我将一些点作为点映射到 Canvas 上,并且我希望将重复的点渲染为更大的点。
我需要检查坐标是否已经被映射过,所以我想将坐标存储在数组中。
这就是我所拥有的。我不确定 .inArray 行。如何检查坐标是否已在数组中?
$(function() {
var arr = [];
arr.push([0,1]);
arr.push([2,1]);
arr.push([3,1]);
arr.push([4,1]);
arr.push([5,1]);
if(jQuery.inArray("2,1",arr)) {
alert("not there");
}
});
最佳答案
据我所知,inArray
仅测试简单值(即不是数组或对象)。
您可以使用 filter
代替:Fiddle
var arr = [];
arr.push([0,1]);
arr.push([2,1]);
arr.push([3,1]);
arr.push([4,1]);
arr.push([5,1]);
x=2;
y=1;
var filtered = $(arr).filter(function(){
thisX = this[0];
thisY= this[1];
return x==thisX && y==thisY;
});
if(filtered.length > 0){
alert("yes");
}
else {
alert("no");
}
要测试范围,请更改返回条件,如下所示:
return (x>thisX-0.5 && x<thisX+0.5) && (y>thisY-0.5 && y<thisY+0.5);
关于jquery - 使用 inArray() 检查坐标是否在 jQuery 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346754/