无法达到第三个if子句

Tij*_*rck 0 javascript arrays if-statement

这可能有一个简单的解决方案,但我现在根本看不到它.我有三个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
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

wal*_*lly 7

你也不能激活第二个.

这里有一个错误: if (arr.length === 0 || 1) {

1类型转换true.

也许你的意思是: if (arr.length === 0 || arr.length === 1) {