これはおそらく簡単な解決策を示していますが、現時点ではわかりません。 配列の長さに基づいて3つのif節をアクティブにする必要があります。最初の2つは正常に動作するようですが、何らかの奇妙な理由で3番目のものを起動できません(arr.length === 3)。 if節の直前で、配列の正しい長さを与えるかどうかをテストする警告を試みました。3番目のif節に到達できません
function calculateDistances() {
var arr = [];
arr.push(posM, posL, posR);
alert(arr[1])
for (var i = 0; i < arr.length; i++) {
if (!arr[i]) {
arr.splice(i,1)
}
}
alert(arr.length)
if (arr.length === 0 || 1) {
return true;
}
else if (arr.length === 2) {
var diameter = calculateDiameter(arr[0], arr[1])
if (diameter > minDistance) {
return false;
}
else {
return true;
}
}
else if (arr.length === 3) {
alert("hello")
var diameter1 = calculateDiameter(arr[0], arr[1]);
var diameter2 = calculateDiameter(arr[0], arr[2]);
var diameter3 = calculateDiameter(arr[1], arr[3]);
if (diameter1 && diameter2 && diameter3 < minDistance) {
return true
}
else{
return false
}
}
}
'arr.length === 0 ||をusethisことができ1 'は常に真です。 – Ivar
私はそれが間違ったアプローチだと思いますが、とにかく場合は3番目に達することはありません –