Javascript “如何评估”;如果;数组索引值为0时失败的比较条件?
我编写了一个if条件,其中返回值是数组的Javascript “如何评估”;如果;数组索引值为0时失败的比较条件?,javascript,arrays,Javascript,Arrays,我编写了一个if条件,其中返回值是数组的索引。返回数组的第一个对象(索引为0)时,if条件失败。有办法解决这个问题吗 我正在检查数组中是否存在值项 我的代码是: if (array.indexOf(term)) { //do something } else { alert("error"); } 这是因为在JavaScript中。考虑这个样本: if (0) { console.log("will never run"); } 正如所暗示的那样,log()调用将永远
索引。返回数组的第一个对象(索引为0)时,if条件失败。有办法解决这个问题吗
我正在检查数组中是否存在值项
我的代码是:
if (array.indexOf(term)) {
//do something
}
else {
alert("error");
}
这是因为在JavaScript中。考虑这个样本:
if (0) {
console.log("will never run");
}
正如所暗示的那样,log()
调用将永远不会运行
您可以执行以下操作:
if(array.indexOf(term) > -1) {
// do stuff
}
或者一个更有意义的比较,取决于上下文 这是因为在JavaScript中。考虑这个样本:
if (0) {
console.log("will never run");
}
正如所暗示的那样,log()
调用将永远不会运行
您可以执行以下操作:
if(array.indexOf(term) > -1) {
// do stuff
}
或者一个更有意义的比较,取决于上下文 函数返回数组中元素的索引。如果找不到,它将返回-1。因此,您必须检查indexOf()
是否返回大于-1的值。如果为true,则它位于数组中。函数返回数组中元素的索引。如果找不到,它将返回-1。因此,您必须检查indexOf()
是否返回大于-1的值。如果为true,则它位于数组中。您还可以使用按位NOT运算符()快速检查某个对象的索引是否表示它包含该对象。例如
if(~[].indexOf('no')) { // Evaluates to 0
console.log('Bitwise NOT of -1 evalautes to true'); // It doesn't
} else if (~['test'].indexOf('test')) { // Evaluates to something other than 0
console.log('Bitwise NOT of 0 evalautes to true'); // It does
}
您还可以使用按位NOT运算符()快速检查某个对象的索引是否表示它包含该对象。例如
if(~[].indexOf('no')) { // Evaluates to 0
console.log('Bitwise NOT of -1 evalautes to true'); // It doesn't
} else if (~['test'].indexOf('test')) { // Evaluates to something other than 0
console.log('Bitwise NOT of 0 evalautes to true'); // It does
}
我猜您遇到了某种类型的空异常。是在java中,但它解释了相同的概念(只需将其改编为javascript),您缺少一个右括号。这是复制/粘贴错误吗?如果(array.indexOf(term)>-1)是通常的方式。@Jason是的,这是复制粘贴错误。更正了。@Sidd收到了。。谢谢我猜您遇到了某种类型的空异常。是在java中,但它解释了相同的概念(只需将其改编为javascript),您缺少一个右括号。这是复制/粘贴错误吗?如果(array.indexOf(term)>-1)是通常的方式。@Jason是的,这是复制粘贴错误。更正了。@Sidd收到了。。谢谢我不确定这在JavaScript中是“快”还是“慢”,但这是肯定的valid@jdphenix我想不是快速,而是简练的哈哈。我不确定这在JavaScript中是“快”还是“慢”,但这是肯定的valid@jdphenix我想我不是指快速,而是指简洁的哈哈。