public data = [
        {
            'name': 'Item 1', 'channelType': 'ota'
        },
        {
            'name': 'Item 2', 'channelType': 'ota'
        },
        {
            'name': 'Item 3', 'channelType': 'ota'
        },
        {
            'name': 'Item 4', 'channelType': 'ota'
        },
        {
            'name': 'Item 5', 'channelType': 'direct'
        },
        {
            'name': 'Item 6', 'channelType': 'direct'
        },
        {
            'name': 'Item 7', 'channelType': 'direct'
        },
]


我想使用过滤器或减少或可能两者都返回名称包含子字符串且通道类型= ota的所有数组

让我清楚地写下我想做的事,

我有一个文本输入和两个复选框。这一切
条件1:所有输入将一起过滤数据。
条件1:它将检查输入是否为name的子字符串。
条件2:它将检查复选框是否为通道类型ota,如果为ota,它将列出所有ota通道类型
条件3:将检查复选框是否为直接通道类型,如果为直接,则将列出所有直接通道类型
条件4:如果同时选中了两个复选框,则返回所有数据,并检查子字符串的输入名称

最佳答案

使用filter()并提供要过滤的谓词。

const filtered = data.filter(d => d.name.includes('substring') && d.channelType === 'ota');

10-08 15:34