【问题标题】:Checking for a wildcard match in an array [duplicate]检查数组中的通配符匹配[重复]
【发布时间】:2018-06-04 10:22:04
【问题描述】:

使用indexOf 函数,如何在数组中搜索通配符匹配时获得肯定的结果,如下所示?我目前得到的只是一个否定的结果:(-1)

function test() {
    var arr = ["OTHER-REQUEST-ASFA","OTHER-REQUEST-ASFB","OTHER-REQUEST-ASFC"]
    var a = arr.indexOf("ASFB")
    alert(a)
}

【问题讨论】:

    标签: javascript arrays regex


    【解决方案1】:

    您需要遍历数组并将indexOf 应用于每个单独的字符串,要获得单个输出,您可以使用Array.some,如果数组中的任何元素包含子字符串,则返回true:

    var arr = ["OTHER-REQUEST-ASFA","OTHER-REQUEST-ASFB","OTHER-REQUEST-ASFC"]
    
    var a = arr.some(s => s.indexOf("ASFB") !== -1)
    
    console.log(a)

    【讨论】:

    • 这个解决方案出现语法错误。
    【解决方案2】:

    var arr = ["OTHER-REQUEST-ASFA","OTHER-REQUEST-ASFB","OTHER-REQUEST-ASFC"]
    var searchTerm = "ASFB";
    
    arr.forEach(function(str, idx) {
      if (str.indexOf(searchTerm) !== -1 ){
        console.log(arr[idx] + ' contains "' + searchTerm  + '" at index ' + idx + ' of arr');
      }
    
    });

    【讨论】:

      【解决方案3】:

      var arr = ["OTHER-REQUEST-ASFA","OTHER-REQUEST-ASFB","OTHER-REQUEST-ASFC"]
      var a = arr.filter(s => s.includes("ASFB"));
      console.log(a);

      【讨论】:

      • 这个解决方案出现语法错误。
      • 那么你的实际代码是什么?它在上面的 sn-p 中工作。如果它给你一个语法错误,那肯定是你的代码和我的代码不同。复制/粘贴我的代码,它就可以工作了。
      猜你喜欢
      • 2013-08-22
      • 2021-07-01
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 2012-12-09
      • 2023-03-27
      • 2013-06-22
      • 2016-02-14
      相关资源
      最近更新 更多