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

时间:2014-01-03 15:00:41

标签: javascript jquery

我很想知道,说我有类似以下内容:

console.log(element.find('div').eq(3).text().indexOf('whatever'));

请记住,element已定义且控制台正在记录值32(或任何非-1的值),这将是将结果转换为布尔值的最佳方法,因此我的{{ 1}}输出console.logtrue

提前致谢。

2 个答案:

答案 0 :(得分:15)

上面的答案是有效的,但如果你像我一样讨厌,你会更喜欢这个:

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

晦涩难懂的'〜' javascript中的运算符执行操作"值* -1 - 1",例如~-2 === 1.我曾经遇到的唯一用例是转换"未找到" -1来自" .indexOf()"进入" 0" (javascript中的假值),跟进并看到它将转换在位置" 0"处找到的索引。 to" -1",一个真正的价值。

tldr:

~[1,2,3].indexOf(0) // => 0
!!~[1,2,3].indexOf(0) // => false

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

答案 1 :(得分:11)

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