instanceof
用于检查对象是否属于某种类型(这是一个完全不同的主题)。因此,您应该在数组中查找,而不是您编写的代码。您可以像这样检查每个元素:
var found = false;
for( var i = 0; i < countryList.length; i++ ) {
if ( countryList[i] === code ) {
found = true;
break;
}
}
if ( found ) {
//the country code is not in the array
...
} else {
//the country code exists in the array
...
}
或者您可以使用更简单的indexOf()
函数使用方法。每个数组都有一个indexOf()
函数循环一个元素并返回它在数组中的索引。如果找不到元素,则返回-1。因此,您检查 的输出indexOf()
以查看它是否在数组中找到与您的字符串匹配的任何内容:
if (countryList.indexOf(code) === -1) {
//the country code is not in the array
...
} else {
//the country code exists in the array
...
}
我会使用第二种算法,因为它更简单。但是第一个算法也很好,因为它更具可读性。两者的收入相同,但第二个性能更好,时间更短。但是,旧浏览器(IE<9)不支持它。
如果您使用的是 JQuery 库,则可以使用inArray()
适用于所有浏览器的功能。indexOf()
如果它没有找到您要查找的元素,则它与返回 -1相同。所以你可以像这样使用它:
if ( $.inArray( code, countryList ) === -1) {
//the country code is not in the array
...
} else {
//the country code exists in the array
...
}