【问题标题】:determine whether the given string is starts with among the array elements确定给定字符串是否以数组元素开头
【发布时间】:2021-08-26 13:58:56
【问题描述】:

我有一个数组和一个给定的字符串。

我需要一种高效快速的方法来检查字符串匹配是否作为起始项存在于数组中。

例如,

array_to_search = ["systematic plan","superscript", "subset"]

如果 string_to_search = "系统" 这应该返回 true

如果 string_to_search = “超级” 这应该返回 true

如果 string_to_search = "matic" 这应该返回 false

如果 string_to_search = "计划" 这应该返回 false

如果 string_to_search = "mmatic" 这应该返回 false

如果 string_to_search = "超集" 这应该返回 false

如果 string_to_search = "上标" 这应该返回 true

如果 string_to_search = "脚本" 这应该返回 false

我试过了

array_to_search.contains("superset")
Error: contains is not a function

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    您可以使用array#somestartsWith 来检查给定模式是否在开头的字符串中。

    array_to_search.some(search => search.startsWith(string_to_search))
    

    const array_to_search = ["systematic plan","superscript", "subset"],
          string_to_search = ["systematic", "super", "matic", "mmatic", "superset", "superscript", "script"],
          result = string_to_search.map(string => array_to_search.some(search => search.startsWith(string)));
    console.log(result);

    【讨论】:

      【解决方案2】:

      对于列表结构上的布尔操作/验证,JavaScript 是否具有数组方法 everysome...

      function doesAnyStringItemStartWith(arr, search) {
        return arr.some(item => item.startsWith(search));
      }
      const array_to_search = [
        'systematic plan',
        'superscript',
        'subset'
      ];
      
      [
        'systematic',
        'super',
        'matic',
        'plan',
        'mmatic',
        'superset',
        'superscript',
        'script'
      
      ].forEach(search => console.log(
      
        `doesAnyStringItemStartWith(array_to_search, '${ search }') ?`,
        doesAnyStringItemStartWith(array_to_search, search)
      ));
      .as-console-wrapper { min-height: 100%!important; top: 0; }

      【讨论】:

        猜你喜欢
        • 2012-01-22
        • 1970-01-01
        • 2016-12-04
        • 2013-05-13
        • 1970-01-01
        • 2013-03-08
        • 2017-03-09
        • 1970-01-01
        • 2012-02-15
        相关资源
        最近更新 更多