当调用我的函数 checkIss()
时,issFullArray.indexOf(issToCheck)
总是返回 undefined
。我运行了一个 .length
,输出了 issFullArray
的内容,但我不明白为什么它不起作用 - 数组对我来说看起来不错。正如您在下面看到的,我已经尝试将 issArray
显式设置为数组并复制由我的 getIssList()
function updateIss() {
var issArray = [];
var currService = current.u_business_service;
var currIss = current.u_is_service;
issArray = getIssList(currService).slice(); //getIssList() returns an arry
if (checkIss(issArray, currIss) === false) {
//do stuff
}
}
function checkIss(issFullArray, issToCheck) {
if (issFullArray.indexOf(issToCheck) < 0) {
return false;
} else {
return true;
}
}
最佳答案
最简单的方法就是遍历数组并比较每个值,如果匹配则返回 true,否则返回 false。代码不多,适用于所有浏览器。
function checkIss(issFullArray, issToCheck) {
for(i=0; i<issFullArray.length; i++) {
if(issFullArray[i]==issToCheck) {
return true;
}
}
return false;
}
关于Javascript 数组 indexOf 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707302/