Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript或jQuery将.indexOf的结果转换为布尔值的最佳方法_Javascript_Jquery - Fatal编程技术网

使用JavaScript或jQuery将.indexOf的结果转换为布尔值的最佳方法

使用JavaScript或jQuery将.indexOf的结果转换为布尔值的最佳方法,javascript,jquery,Javascript,Jquery,我想知道,比如说,我有一些类似的事情: console.log(element.find('div').eq(3).text().indexOf('whatever')); 请记住,已定义元素,并且控制台正在记录值32(或任何非-1的值),将结果转换为布尔值的最佳方法是什么?因此myconsole.log可以输出真或假 提前谢谢。上面的答案会有用,但是如果你和我一样书呆子,你会更喜欢这个: console.log(element.find('div').eq(3).text().indexOf

我想知道,比如说,我有一些类似的事情:

console.log(element.find('div').eq(3).text().indexOf('whatever'));
请记住,已定义
元素
,并且控制台正在记录值32(或任何非-1的值),将结果转换为布尔值的最佳方法是什么?因此my
console.log
可以输出


提前谢谢。

上面的答案会有用,但是如果你和我一样书呆子,你会更喜欢这个:

console.log(element.find('div').eq(3).text().indexOf('whatever') > -1);
console.log(~element.find('div').eq(3.text().indexOf('whatever'))

javascript中晦涩难懂的“~”操作符执行“value*-1-1”操作,例如
~-2==1。
我唯一使用过的例子是将“.indexOf()”中的“not found”-1转换为“0”(javascript中的一个假值),然后查看它会将在“0”位置找到的索引转换为“-1”(一个真实值)

tldr:


element.find('div').eq(3).text().indexOf('whatever')>-1
~something.indexOf('whatever')
您可能需要修改您的答案,因为
~
并不是很模糊。它是按位NOT运算符,用于将数字的二进制表示形式中的所有1切换为0。由于-1在二进制中是
111….1
,因此它会变成
000….0
,可以转换为
false
。。。更好的解释是:根据我的测试,此解决方案和接受的解决方案大致同时运行。因此,如果性能是你关心的问题;不必如此-选择您喜欢的可读性解决方案。
~[1,2,3].indexOf(0) // => 0
!!~[1,2,3].indexOf(0) // => false

~[1,2,3].indexOf(1) // => -1
!!~[1,2,3].indexOf(1) // => true