在javascript中是否有一个函数可以测试给定值(在我的情况下是字符串)是否存在于数组(字符串数组)中?我知道我可以循环遍历每个值,但我想知道js是否有一种简写方式。
在javascript中是否有一个函数可以测试给定值(在我的情况下是字符串)是否存在于数组(字符串数组)中?我知道我可以循环遍历每个值,但我想知道js是否有一种简写方式。
jQuery拥有.inArray()方法,这是我所知道的最好的方法。
虽然有.indexOf()
方法可以实现,但是IE<9不支持该方法:
if(array.indexOf("mystring") > -1) {
//found
}
从同一个MDC文档页面中,这是在使用之前包含的内容,以使IE也能正常工作:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
.indexOf()
返回字符串在数组中被找到的索引位置,如果没有找到则返回-1
。
对于那些本应该在 JavaScript 中但我还没有找到的 PHP 函数,我会去 http://phpjs.org。
如果你只是使用 JavaScript,想要使用的函数是 in_array,可以在这里找到:http://phpjs.org/functions/in_array:432。
否则,请使用此页面上的 jQuery 解决方案。