开发者问题收集

javascript 中的 .toLowerCase“不是一个函数”?

2014-10-23
34438

我正在尝试做类似的事情

if (pathArray.toLowerCase().indexOf("blah") != -1{}

使用控制台进行调试时,我收到“pathArray.toLowerCase 不是函数”的错误。为什么我会收到这条消息?

3个回答

toLowerCase 是字符串的一种方法。如果您希望能够在数组中找到字符串而不知道确切的大小写,则可以将 map 步骤添加到链中:

pathArray.map(function(s) { return s.toLowerCase(); }).indexOf('blah') !== -1
dfsq
2014-10-23

toLowerCase() 仅适用于字符串,但我感觉您的“pathArray”实际上是一个数组。

> 'hello'.toLowerCase()
'hello'
> ['hi', 'bye'].toLowerCase()
TypeError: undefined is not a function

您是否尝试检查数组中是否存在大写/小写形式的“blah”?

jdussault
2014-10-23

toLowerCase 方法属于 String 函数原型。因此 pathArray 可能不是字符串。我感觉(就其名称而言)它是一个数组。在这种情况下,以下代码可能对您有用:

pathArray.forEach(function(item, index){
    if(item.toLowerCase().indexOf("blah") != -1){
    }
});

dfsq 提出的代码也可能有用。这取决于您想要执行 indexOf 函数的级别。在我的例子中,您将对每个字符串执行搜索,以找到子字符串“blah”的起始索引。在 dfsq 的代码中,您将查找包含整个字符串“blah”的数组索引。

Augusto Altman Quaranta
2014-10-23