【问题标题】:Filtering array where property contains string过滤属性包含字符串的数组
【发布时间】:2015-05-26 14:20:35
【问题描述】:

我正在尝试过滤一些 JSON 数据以搜索以某个字符串开头的工作角色。

JSON 看起来像:

"periods": [
        {
            "periodName": "Week1",
            "teamName": "Tango",
            "roleName": "SoftwareEngineerII",
            "roleExperience": "2",
            "id": "cc1f6e14-40f6-4a79-8c66-5f3e773e0929"
        },
        ...
    ]

我想过滤以“软件”开头的角色名称,以便我可以看到所有软件工程师级别的列表,并过滤掉其他角色。

我不知道如何在这里“开始”或“包含”。

【问题讨论】:

标签: javascript json linq.js


【解决方案1】:

您正在尝试过滤其中一个字符串属性包含一个值的数组...您将如何检查一个字符串是否包含另一个字符串?

你可以使用正则表达式:

var str = 'SoftwareEngineerII';
if (str.match(/^software/i)) {
    // it starts with 'software'
}

因此,您需要将其转换为可以在过滤器中使用的谓词。

var query = Enumerable.From(data.periods)
    .Where("!!$.roleName.match(/^software/i)")
    .ToArray();

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2015-11-20
    • 2017-08-07
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    相关资源
    最近更新 更多