这可能有一个简单的解决方案,但我现在根本就没有看到它。 我有三个if子句,可以根据数组的长度激活。前两个似乎工作正常,但由于一些奇怪的原因,我无法激活第三个(arr.length === 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
}
}
}
答案 0 :(得分:7)
你也不能激活第二个。
这里有一个错误:if (arr.length === 0 || 1) {
1
投射到true
。
也许你的意思是:if (arr.length === 0 || arr.length === 1) {
答案 1 :(得分:0)
你需要这个:
if (arr.length === 0 || arr.length === 1) {
你说的方式,它等于
if ((arr.length === 0) || true) {
总是如此。
答案 2 :(得分:0)
我认为你所寻找的是第一个if条件
的条件if (arr.length === 0 || arr.length === 1) {
return true;
}
这将检查数组的长度是1还是0。您的第一个if条件始终为true,因为1
为真。
答案 3 :(得分:0)
(arr.length === 0 || 1)
总是如此。
你可以改用
if (arr.length <= 1)
{
return true;
}