【发布时间】:2010-10-01 12:58:55
【问题描述】:
javascript 中是否有一个函数来执行此操作 - 测试给定值(在我的情况下为字符串)是否存在于(字符串)数组中?我知道我可以循环遍历每个值,但我想知道 js 是否对此有简写。
【问题讨论】:
-
如果您需要经常这样做,索引数组可能不是正确的数据结构。考虑使用关联数组/对象表示(它为您提供逻辑
in运算符)。
标签: javascript jquery arrays
javascript 中是否有一个函数来执行此操作 - 测试给定值(在我的情况下为字符串)是否存在于(字符串)数组中?我知道我可以循环遍历每个值,但我想知道 js 是否对此有简写。
【问题讨论】:
in 运算符)。
标签: javascript jquery arrays
jquery 有 .inArray() 方法。这是我所知道的最好的..
【讨论】:
这个有.indexOf(),但是IE
if(array.indexOf("mystring") > -1) {
//found
}
来自同一个MDC documentation page,以下是使 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。
【讨论】:
对于那些在 php 中并且应该在 javascript 中或者我还没有找到的函数,我去:http://phpjs.org
如果你只是使用 javascript,你想要使用的函数是 in_array 这里:http://phpjs.org/functions/in_array:432
否则,请使用此页面上的 jQuery 解决方案。
【讨论】: