实时搜索数组值

时间:2018-08-15 02:50:38

标签: javascript arrays

我的数组列表名称为tableRows

 var tableRows = [
        [
            {
                'ColumnName': 'Checkbox'
            },
            {
                'ColumnName': 'TicketNumber',
                'Type': 'text',
                'Text': 20173100021
            },
            {
                'ColumnName': 'Type',
                'Type': 'text',
                'Text': 'Project'
            },
            {
                'ColumnName': 'Edits',
                'Type': 'text',
            },
            {
                'ColumnName': 'Name1',
                'Type': 'text',
                'CompanyName': 'CompanyA'
            },
            {
                'ColumnName': 'Name2',
                'Type': 'text',
                'CompanyName': 'CompanyB'
            }
        ]
    ];

即使我输入的内容不正确,我也如何搜索CompanyName,例如,我只键入“ Comp”,将显示所有CompanyName,然后如果键入“ CompanyA”,则所有具有相同名称的名字都将显示在console.log中。顺便说一下,我使用了JavaScript。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以为此使用string.inlcudes()

var tableRows = [[{'ColumnName': 'Checkbox'},{'ColumnName': 'TicketNumber','Type': 'text','Text': 20173100021},{'ColumnName': 'Type','Type': 'text','Text': 'Project'},{'ColumnName': 'Edits','Type': 'text',},{'ColumnName': 'Name1','Type': 'text','CompanyName': 'CompanyA'},{'ColumnName': 'Name2','Type': 'text','CompanyName': 'CompanyB'}]];

console.log(tableRows[0].filter(item => item.CompanyName && item.CompanyName.toLowerCase().includes("coMP".toLowerCase())))

console.log(tableRows[0].filter(item => item.CompanyName && item.CompanyName.includes("A")))

还有startsWithmatch()之类的其他方法,可以使您对匹配方式和匹配方式进行很多控制。