javascript 逻辑 else 如果不工作

标签 javascript php jquery dom

我有关于 else if 的问题 就我而言,最后一个其他不起作用

var pakeEach = $(".Thide").each(function () {
    var cat = $(this).val();
    if (cat.indexOf(PCatId) == -1) {
        console.log("Pilih tidak ada di your aksess")
    } else {
        if (cat.indexOf(PCatId) != -1) {
            console.log("Show only " + cat);
        } else {
            console.log("Remove");//why not working last else
        }
    }
});

最佳答案

从你的逻辑开始:

if (value == -1) {
    ...
} else {
    if (value != -1) {
        ...
    } else {
        ...
    }
}

您可以将其简化为:

if (value == -1) {
    ...
} else if (value != -1) {
    ...
} else {
    ...
}

正如你所看到的,你说的是“如果值是-1​​那么...,否则如果值不是-1...”这涵盖了两种可能的情况:值只能是-1或不是-1 1(正如 A. Wolff 在评论中所讨论的)。

else 永远不会被命中,因为所有可能的分支都已经被覆盖了。

如果您想在其他分支之一(可能是找到该项目的分支)中包含删除逻辑,您应该使用类似以下内容的内容:

if (value === -1) {
    console.log("Pilih tidak ada di your aksess")
} else {
    console.log("Show only " + cat);
    console.log("Remove!");
}

这是一种更简洁的书写方式。请注意,=== 运算符通常优于 ==,尤其是当您知道要比较相同类型的对象时。

因为您正在调用 indexOf,所以唯一可能的结果是该项目位于集合中 (indexOf(foo) > -1) 或不在集合中 (indexOf(foo) === -1)。这里没有第三个选项,除非您关心它在集合中的位置。

例如,要删除该项目(如果它不是集合中的第一个项目),您可以使用:

if (value === -1) {
    console.log("Pilih tidak ada di your aksess")
} else if (value === 0) {
    console.log("Show only " + cat);
} else {
    console.log("Remove!");
}

由于 if 条件仅匹配可能值的一小部分,因此在这种情况下实际上可以命中 else

关于javascript 逻辑 else 如果不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30036002/

相关文章:

php - php 死掉后 Bootstrap 下拉列表停止工作

javascript - react 路由中的错误404

javascript - Ajax 从 Laravel 接收对象集合

php - 在集合中搜索 laravel

jquery - 增加字符串中间的数字

javascript - 使垂直滚动条可见,保持表头静态

javascript - 安装和使用 jquery 插件

php - 从 PHP 将数据集传递给 JavaScript 验证

javascript - 相机旋转后的 WebGL 平移(作为 FPS)

javascript - 在 Modal Popup Extender 窗口(JavaScript)之间闪烁?