點燈坊

失くすものさえない今が強くなるチャンスよ

使用 indexOf() 尋找 String 的 Index

Sam Xiao's Avatar 2020-01-12

若 Char 存在於 String,String.prototype.indexOf() 會回傳其 index,否則回傳 -1

Version

macOS Catalina 10.15.2
VS Code 1.41.1
Quokka 1.0.271
ECMAScript 2015

Found

let data = 'hello'

if (data.indexOf('e') > -1) console.log('found')

if (~data.indexOf('e')) console.log('found')

indexOf() 回傳大於 -1 則表示找到,亦可使用 ~,只要不是 -1 都會回傳 true。

indexof000

Not Found

let data = 'hello'

if (data.indexOf('x') === -1) console.log('not found') 

if (!~data.indexOf('x')) console.log('not found') 

indexOf() 等於 -1 表示找不到,亦可使用 !~,只要是 -1 都會回傳 true。

indexof001

Conclusion

  • 透過 ~!~ 轉成 boolean 特性,亦可用於其他回傳 -1 的 function

Reference

Colquitt, Top 35 JavaScript Shorthands