我的数组列表名称为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。谢谢!
答案 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")))
还有startsWith
和match()
之类的其他方法,可以使您对匹配方式和匹配方式进行很多控制。