0

我们的站点在 .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;
}
4

0 回答 0