コードをより簡潔にしようとしています (つまり、コードの繰り返しを減らします)。最近のコードをより簡潔にする方法についてスーパーバイザーからアドバイスを受けましたが、その方法が正確にはわかりません。
ユーザーがdivの特定の領域内をクリックしたかどうかを確認するために使用している座標がいくつかあります。すべての座標を配列に入れて「ループスルー」して、必要なときにそれらを取得する必要があると言われました。彼の言っていることは理解できると思いますが、私はまだプログラミングに慣れていないので、理解できません。何が起こっているのかをよりよく理解できるように、これまでに行ったことは次のとおりです。
$("#div1").click(function(e)
{
// Arrays containing the x and y values of the rectangular area around a farm
// [minX, maxX, minY, maxY]
var div1_Coord_Area1= [565, 747, 310, 423];
var div1_Coord_Area2= [755, 947, 601, 715];
if(areaX >= Reg2_Coord_Farm1[0] && areaX <= Reg2_Coord_Farm1[1] && areaY >= Reg2_Coord_Farm1[2] && areaY <= Reg2_Coord_Farm1[3])
{
alert("You clicked in the first area");
}
if(areaX >= Reg2_Coord_Farm2[0] && areaX <= Reg2_Coord_Farm2[1] && areaY >= Reg2_Coord_Farm2[2] && areaY <= Reg2_Coord_Farm2[3])
{
alert("You clicked in the second area");
}
});
計算方法は気にしないでください。そのコードは基本的に無関係なので、メソッドから除外しましたが、疑問に思っている場合に備えてあります。
座標セットごとに配列を作成し、それらを呼び出すだけです。ただし、これは、各領域のすべての座標で満たされた巨大な配列を「ループする」わけではありません。これを行う方法を思いつくことができますか、それとも現時点で私ができる最善の方法ですか?