javascript验证数组的值

时间:2011-02-22 13:56:54

标签: javascript jquery arrays

我正在寻找一种验证阵列的方法。 我迷失在阵列搜索部分。

我可能会得到这样的数组:

stream = ["apple","orange", "grape", "peach","strawberry","watermelon", "kiwi", "raspberry"];

但我只想要:

selection = ["apple", "peach","strawberry","kiwi", "raspberry"];

我怎么写一个声明会说: 如果此流中的某些内容与我的选择匹配,请执行某些操作。

2 个答案:

答案 0 :(得分:3)

您必须使用这样的inArray命令:

if($.inArray(ValueToCheck, YourArray) > -1) { alert("Value exists"); }

InArray将在您的数组中搜索您要求的值并返回其索引。如果该值不存在,则返回-1。

答案 1 :(得分:2)

var stream    = ["apple","orange", "grape", "peach","strawberry","watermelon", "kiwi", "raspberry"],
    selection = ["apple", "peach","strawberry","kiwi", "raspberry"];

stream.forEach(function(elem) {
    if( selection.indexOf(elem) > -1 ) {
        // we have a match, do something.
    }
});

请注意,Array.prototype.forEachhelp.indexOf()help是Javascript 1.6的一部分,任何InternetExplorer都可能不支持<版本9.请参阅 MDC 关于替代版本的文档。

还有很多其他方法可以完成相同的事情(例如使用“普通”for-loop),但我认为这可能是性能与可读性的最佳交易。

无论如何,所有使用过的Javascript 1.6函数实际上都非常简单,无法自行编写。

如果浏览器支持,则jQuerys $.inArray()help也会使用Array.prototype.indexOf()