我们的站点在 .asp 上运行 javascript,并且 indexOf 函数的行为与我预期的不同。请参见下面的示例(某些变量已更改为与示例相同。但是所有类型都相同):
var SID = "foo";
var getCookie = "foo##%##bar##%##bloo"
var cookieArr = getCookie.split("##%##");
if(cookieArr.indexOf(SID)!=-1){
console.log("found") //found
} else {
console.log("not found") //not found
}
这在控制台中可以正常工作,但是当在服务器上运行时,它会在 if 语句行上返回“对象不支持此属性或方法”。
我注意到将检查更改为 'cookieArr[0].indexOf(SID)!=-1' 在服务器端解析为 true 但这显然不好,因为我告诉它在哪里看。
如果这是一种已知行为,我应该使用什么解决方案来搜索数组中是否存在值?
编辑:
现在要使用下面肮脏的解决方法,但如果有人知道为什么上面的方法不起作用,仍然会感兴趣
function checkArrForString(str,arr){
for(x=0;x<arr.length;x++){
if(arr[x]==str){
return x;
}
}
return -1;
}