jquery IndexOf函数总是返回-1

mjqavswn  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(149)

我使用indexOf函数来检查给定数组中是否存在特定字符串,但它总是给我“-1”,即使给定数组中存在特定字符串。下面是相同的代码。

var independentLocations = ['/home', '/login','/ImpersonateUser'];
independentLocations.indexOf("/Authorization/ImpersonateUser");

字符串
上面的代码每次给出结果“-1”,即使“ImpersonateUser”在给定数组中可用。
请帮帮我。

dwthyt8l

dwthyt8l1#

Array.prototype.findIndex与以下项结合使用:
String.prototype.includes(容易出错的解决方案):

const independentLocations = ['/home', '/login','/ImpersonateUser'];
const path = "/Authorization/ImpersonateUser";

const idx = independentLocations.findIndex(x => path.includes(x));

console.log(idx); // 2

字符串

**注意:**这是最简单的,但可能容易出错:例如,如果使用i.e:"/Authorization/ImpersonateUsers"(注意"s"),它仍然会返回一个匹配的索引。

为了更精确,可以使用RegExp.prototype.test()

const independentLocations = ['/home', '/login','/ImpersonateUser'];
const path = "/Authorization/ImpersonateUser";

const idx = independentLocations.findIndex(x => new RegExp(`\\b${x}\\b`).test(path));

console.log(idx); // 2

相关问题