【问题标题】:Search matches in array在数组中搜索匹配项
【发布时间】:2021-11-16 21:58:21
【问题描述】:

我目前正在编写一个简单的程序,我需要查看输入的输入字符串是否也在数组中。

为了简单起见 如果一个人键入“Ai”,我希望程序显示数组中包含字母“Ai”的所有内容。结果将是“飞机”、“空气”、“机场”、“机场”等。

有谁知道如何快速简单地做到这一点?

【问题讨论】:

  • 欢迎来到 Stack Overflow!请查看How to Ask 的指南。您可能想要描述您已经尝试过的内容,并提供minimal reproducible example 来解决您的问题。据推测,这里的答案看起来像 arr.filter(s => s.startsWith(input))arr.filter(s => s.includes(input)) 甚至是其他东西,具体取决于您所说的“包含”(这是具体说明用例有帮助的地方。“空气”是否匹配?“公平”吗? " 匹配吗?"Acid" 匹配吗?等),但如果没有 minimal reproducible example,则很难确定。

标签: arrays angular string typescript


【解决方案1】:

假设您正在处理一个包含所有字符串的数组,那么这些函数应该可以工作:

// Check if any string in an array contains "str" as a substring.
function findStringThatContainsString(array: string[],str: string)
{
    let filteredArray = array.filter(x => x.includes(str));
    return filteredArray.length > 0;
}

// Check if any string in an array starts with "str."
function findStringThatStartsWithString(array: string[],str: string)
{
    let filteredArray = array.filter(x => x.startsWith(str));
    return filteredArray.length >0;
}

测试程序:

let testString: string = "air";
let arr1 = ["corsair","stenographer"];
let arr2 = ["hey","no"];

function findStringThatContainsString(array: string[],str: string)
{
    let filteredArray = array.filter(x => x.includes(str));
    return filteredArray.length > 0;
}
function findStringThatStartsWithString(array: string[],str: string)
{
    let filteredArray = array.filter(x => x.startsWith(str));
    return filteredArray.length >0;
}
console.log(findStringThatContainsString(arr1,testString));
console.log(findStringThatContainsString(arr2,testString));
console.log(findStringThatStartsWithString(arr1,testString));
console.log(findStringThatStartsWithString(arr2,testString));

输出:

真 错误的 错误的 假的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多