【问题标题】:javascript validate value against arrayjavascript根据数组验证值
【发布时间】:2011-02-22 13:56:53
【问题描述】:

我正在寻找一种方法来验证数组。 我迷失在数组搜索部分。

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

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

但我只想:

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

我将如何写一个声明: 如果此信息流中的某些内容与我的选择相匹配,请执行某些操作。

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    你必须像这样使用 inArray 命令:

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

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

    【讨论】:

    • +1 应该是 inArray() 但否则是的,这就是我会使用的
    • @BrokenGlass - 谢谢你提醒我,我没注意到 :)
    【解决方案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 MDC 的有关替代版本的文档。

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

    不管怎样,所有用到的 Javascript 1.6 函数,自己写其实很简单。

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

    【讨论】:

      猜你喜欢
      • 2019-04-01
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      相关资源
      最近更新 更多