我正在寻找一种验证阵列的方法。 我迷失在阵列搜索部分。
我可能会得到这样的数组:
stream = ["apple","orange", "grape", "peach","strawberry","watermelon", "kiwi", "raspberry"];
但我只想要:
selection = ["apple", "peach","strawberry","kiwi", "raspberry"];
我怎么写一个声明会说: 如果此流中的某些内容与我的选择匹配,请执行某些操作。
答案 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.forEach
help和.indexOf()
help是Javascript 1.6的一部分,任何InternetExplorer都可能不支持<版本9.请参阅 MDC 关于替代版本的文档。
还有很多其他方法可以完成相同的事情(例如使用“普通”for-loop
),但我认为这可能是性能与可读性的最佳交易。
无论如何,所有使用过的Javascript 1.6函数实际上都非常简单,无法自行编写。
如果浏览器支持,则jQuerys$.inArray()
help也会使用Array.prototype.indexOf()
。