我对其他问题有疑问 在我的情况下,最后其他不工作
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
}
}
});
答案 0 :(得分:1)
从您的逻辑开始:
if (value == -1) {
...
} else {
if (value != -1) {
...
} else {
...
}
}
您可以将其简化为:
if (value == -1) {
...
} else if (value != -1) {
...
} else {
...
}
正如你所看到的,你说的是“如果值为-1然后......,否则如果值不是-1 ......”这涵盖了两种可能的情况:值不能是-1而不是-1 - 1(正如A. Wolff在评论中所讨论的那样)。
其他人永远不会被击中,因为所有可能的分支都已被覆盖。
如果要在其他分支(可能是找到项目的分支)中包含删除逻辑,则应使用以下内容:
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
)。这里没有第三个选项,除非你关心集合中的 where 。
例如,要删除项目(如果项目不是集合中的第一个项目),您可以使用:
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
。
答案 1 :(得分:0)
试试这个:
var pakeEach = $(".Thide").each(function () {
var cat = $(this).val();
if (cat.indexOf(PCatId) == -1)
{
console.log("Pilih tidak ada di your aksess");
console.log("Remove");
}
else
{
console.log("Show only " + cat);
}
});
答案 2 :(得分:0)
你要做的是:
var pakeEach = $(".Thide").each(function () {
var cat = $(this).val();
if (!cat) {
console.log("Pilih tidak ada di your aksess")
} else if (cat === PCatID) {
console.log("Show only " + cat);
} else {
console.log("Remove");
}
});
首先检查cat
是否为空,然后根据其值进行分支。
答案 3 :(得分:0)
算法你在说 如果 cat.indexOf(PCatId)等于-1,那么执行第一个if块
else 执行第二个块,它逻辑上处理cat.indexOf(PCatId)与-1不同的情况。
我的意思是在第一个你永远不会得到cat.indexOf(PCatId)== -1,因为你是在第一个 这是您的答案,并作出一些修改和评论:
var pakeEach = $(".Thide").each(function () {
var cat = $(this).val();
if (cat.indexOf(PCatId) == -1) {
// this part of code is executed if cat.indexOf(PCatId) == -1
console.log("Pilih tidak ada di your aksess")
} else {
// here at this level we can never get cat.indexOf(PCatId) == 1
if (cat.indexOf(PCatId) != -1) {
console.log("Show only " + cat);
}
// this else should be removed !!!! because it is useless
else {
console.log("Remove");//why not working last else
}
}
});