假如我有一段字符串,我需要判断它是否以 one 开头的,可以这样写
if (str.startsWith('one')) |
假如我还需要判断是否以 two 开头:
if (str.startsWith('one') || str.startsWith('two')) |
如果后面还需要继续加,岂不是要写很多个 startsWith ?
更好的做法是使用 some() 方法。
const prefixes = ['one', 'two', 'three']; |
此处定义一个数组,用 some() 方法遍历数组中的每一个元素。如果存在任何一个前缀与字符串匹配,则返回 true
,否则返回 false
。
上面的代码,最后会打印出 str 的值,如果我还想获得 prefix 的值,此时是 three,可以这么写
const prefixes = ['one', 'two', 'three']; |
此时输出的结果是
one match ⭐️⭐️⭐️ |
可以发现,明明数组中第一个元素已经匹配到了,但是后面的元素还是继续判断。如果想要匹配到之后,后面的不判断,需要加一个 return。
const prefixes = ['one', 'two', 'three']; |
测试的时候我使用这个网站:compile nodejs online (rextester.com)