在JavaScript中的'in'操作符。字符串比较

39

你好,我是JavaScript的新手,遇到了一个基本问题:

当我在Python中使用以下代码片段时:

'a' in 'aaa' 

我得到了 True

当我在 JavaScript 中尝试同样的操作时,我会得到一个错误:

TypeError: Cannot use 'in' operator to search for 'a' in aaa

如何获得与Python中类似的结果?


另一个常见的困惑点是Python中的is运算符,在C#中意义完全不同。Python中的is表示对象身份比较,而C#中的is类似于Python的isinstance - Kos
1
一般来说,JavaScript 和 Python 差别很大;需要注意比较操作(例如在 JavaScript 中使用 ===),数组(不要使用 in 遍历 JavaScript 数组),字典和对象(在 Python 中分开,但在 JavaScript 中是同一种东西),类型(JavaScript 是动态和松散类型,Python 是动态但强类型)等等。 - Phil H
5个回答

19

我认为一种方法是使用String.indexOf()

的方式。


'aaa' .indexOf('a') > -1
在JavaScript中,in运算符用于检查对象是否具有某个属性。

5
你需要使用indexOf方法。
'aaa'.indexOf('a') == 0 //if a char exists in the string, indexOf will return
                        // the index of the first instance of the char
'aaa'.indexOf('b') == -1 //if a char doesn't exist in the string, indexOf will return -1

2

来自MDN

in 运算符用于判断某个属性是否存在于指定的对象中,如果存在则返回 true。

你可能对'aaa'.indexOf('a')感兴趣。


2

2

尝试:

if('aaa'.search('a')>-1){
   //
}

你可以使用includes(),例如if('aaa'.includes('a'))。 - sandeep jain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接