当前位置: 首页 > 面试题库 >

在javascript中,如何在数组中搜索子字符串匹配项

终安和
2023-03-14
问题内容

我需要在JavaScript中搜索数组。搜索将仅针对字符串的一部分进行匹配,因为该字符串将分配有其他数字。然后,我需要返回带有完整字符串的成功匹配的数组元素。

var windowArray = new Array ("item","thing","id-3-text","class");

我需要搜索其中包含的数组元素,"id-"并且也需要在元素中提取其余文本(即"id-3-text")。

谢谢


问题答案:

在您的特定情况下,您可以使用一个无聊的旧柜台来做到这一点:

var index, value, result;
for (index = 0; index < windowArray.length; ++index) {
    value = windowArray[index];
    if (value.substring(0, 3) === "id-") {
        // You've found it, the full text is in `value`.
        // So you might grab it and break the loop, although
        // really what you do having found it depends on
        // what you need.
        result = value;
        break;
    }
}

// Use `result` here, it will be `undefined` if not found

但是,如果您的数组是稀疏的,则可以通过适当设计for..in循环来更有效地执行此操作:

var key, value, result;
for (key in windowArray) {
    if (windowArray.hasOwnProperty(key) && !isNaN(parseInt(key, 10))) {
        value = windowArray[key];
        if (value.substring(0, 3) === "id-") {
            // You've found it, the full text is in `value`.
            // So you might grab it and break the loop, although
            // really what you do having found it depends on
            // what you need.
            result = value;
            break;
        }
    }
}

// Use `result` here, it will be `undefined` if not found

当心for..in没有hasOwnProperty!isNaN(parseInt(key,10))检查的幼稚的循环。

离题

另一种写法

var windowArray = new Array ("item","thing","id-3-text","class");

var windowArray = ["item","thing","id-3-text","class"];

…这对您来说键入的次数较少,也许(这一点是主观的)更容易阅读。这两个语句的结果完全相同:具有这些内容的新数组。



 类似资料:
  • 问题内容: 在SQLite中搜索子字符串的最有效方法是什么? 我在看LIKE运算子。 我有正确的主意吗?这对您来说效果很好吗? http://www.sqlite.org/lang_expr.html 谢谢你。 问题答案: 是的,请使用“赞”。 将返回名称列中任何位置带有“ omm”的行。

  • 问题内容: 我想在arraylist中搜索一个字符串。我的ArrayList包含: 现在我要搜索,它应该返回包含和的列表。我该如何实施? 问题答案:

  • 问题内容: 如何搜索以关键字开头的字符串数组? 例如, 当我的搜索字符串必须显示时 当我的搜索字符串是那么。 问题答案: 交换为您只希望寻找遏制。

  • 我有一个JavaScript数组: 我需要找到类要来的次数和它的数组键,所以我使用: 然后我用: 但那也是错误的。我怎么解决这个? 我想从这个数组中得到以下内容: > 类来了4次,在键0、2、3和7处 我只想创建一个单独的class数组, 当前,中有四个类。如何获取 即,等。

  • 问题内容: 在Elasticsearch中,如何搜索任意子字符串,也许包括空格?(仅搜索单词的一部分是不够的;我想搜索整个字段的任何子字符串。) 我想它必须在一个字段中,而不是一个字段中。 假设我的Elasticsearch索引中只有几千个文档,然后尝试: 可以按预期工作,我得到了描述中“计划”所在的每个项目,甚至是“替代”项目。 现在,我想做 …以便在许多其他可能性中将文件与“ Kaplan不是

  • 问题内容: 我想要一个自动完成功能。我对数据类型的属性有简短的描述性字符串。我在redis中有一个ID列表,其中包含按创建日期排序的数据类型,并且使用ID来设置和获取该数据类型的属性,如redis类型文档中所述。我不使用哈希表。在此设置下,获取与输入到自动完成输入框中的内容相匹配的字符串集的最佳方法是什么?遍历所有id并检查我要搜索的属性- 对于每次击键,这似乎是错误的方法。 编辑: 除了下面的答