Javascript 第三条“如果”条款无法达成
这可能有一个简单的解决方案,但我现在根本看不到。 我有三个if子句,它们将根据数组的长度被激活。前两个似乎工作正常,但出于某种奇怪的原因,我无法激活第三个arr.length==3。就在if子句之前,我尝试了一个警报来测试它是否给出了正确的数组长度,并且它确实给出了Javascript 第三条“如果”条款无法达成,javascript,arrays,if-statement,Javascript,Arrays,If Statement,这可能有一个简单的解决方案,但我现在根本看不到。 我有三个if子句,它们将根据数组的长度被激活。前两个似乎工作正常,但出于某种奇怪的原因,我无法激活第三个arr.length==3。就在if子句之前,我尝试了一个警报来测试它是否给出了正确的数组长度,并且它确实给出了 function calculateDistances() { var arr = []; arr.push(posM, posL, posR); alert(arr[1])
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
}
}
}
你也不能激活第二个 这里有一个bug:if arr.length==0 | | 1{ 这一点是正确的 也许你的意思是:如果arr.length==0 | | arr.length==1{你需要这个:
if (arr.length === 0 || arr.length === 1) {
按照你的说法,它等于
if ((arr.length === 0) || true) {
这总是正确的。我想你要找的是在第一个if条件下的条件
if (arr.length === 0 || arr.length === 1) {
return true;
}
这将检查数组的长度是1还是0。第一个if条件始终为true,因为它的1为true
(arr.length === 0 || 1)
这永远是真的
你可以用这个来代替
if (arr.length <= 1)
{
return true;
}
arr.length==0 | | 1始终是正确的。我认为这是一种错误的方法。无论如何,如果你受到欢迎,你将永远不会到达第三个。如果它解决了你的问题,你能将此标记为答案吗。