我试图做这样的事情
if (pathArray.toLowerCase().indexOf("blah") != -1{}
使用控制台进行调试时,我得到错误" pathArray.toLowerCase不是函数"。为什么我会收到这条消息?
答案 0 :(得分:5)
toLowerCase
是字符串的一种方法。如果您希望能够在不知道具体情况的情况下在数组中查找字符串,则可以向链中添加map
步骤:
pathArray.map(function(s) { return s.toLowerCase(); }).indexOf('blah') !== -1
答案 1 :(得分:4)
toLowerCase()仅适用于字符串,但我感觉你的" pathArray"实际上是一个数组。
> 'hello'.toLowerCase()
'hello'
> ['hi', 'bye'].toLowerCase()
TypeError: undefined is not a function
您是否正在检查是否"等等#34;您的数组中是否以任何大写/小写形式存在?
答案 2 :(得分:1)
toLowerCase 方法属于String函数原型。所以pathArray可能不是String。我有一种感觉(因为它的名字)是一个数组。在这种情况下,以下代码可能对您有用:
pathArray.forEach(function(item, index){
if(item.toLowerCase().indexOf("blah") != -1){
}
});
dfsq提出的代码也很有用。这取决于您要执行indexOf函数的级别。在我的例子中,您将对每个字符串执行搜索,以便找到子字符串“blah”的起始索引。在dfsq的代码中,您将查看包含整个字符串“blah”的数组索引。
答案 3 :(得分:0)
是的,它是一个数组,所以现在让它变得不起作用。我试图制作indexOf。不区分大小写。
无需Array#indexOf()
:
if (pathArray.some(function(v) { return v.toLowerCase() === 'blah';}))
如果对于回调返回true
的任何元素, Array#some()
将返回true。
答案 4 :(得分:0)
您的String可能位于数组的索引0中。
在0索引上应用toLowerCase()可以解决您的问题:
pathArray[0].toLowerCase()