我正在使用以下语句搜索JSON数组:
var result = residentData.filter(obj => Object.values(obj).some(val => val.includes(search)));
residentData
是JSON格式的数组数据。"搜索"是我要搜索的字符串。我想独立于搜索字符串的情况(上,低,混合(进行搜索。我尝试过toLowerCase()
,但还没有成功。
有人可以指向正确的方向吗?谢谢!
您可以使用带有Sesitivitive选项的LocalComparer作为基础,如
'First'.localeCompare('first', { sensitivity: 'base' })); // 0
有关LocalComparer的更多信息
感谢您指向localeCompare()
的指针。我经历了MDN的解释,但是对JavaScript来说是相对较新的,我没有让它起作用。也许如果我给您更多代码详细信息,您可以向我展示如何使用localeCompare
?
JSON数据看起来像这样:
var residentData=[{
"FirstName": "fname1",
"LastName": "lname1",
"Street": "Street1 Lane",
"Phone": "12345",
"MobilePhone": "45643",
"EMail": "person1@email.com"
},
{
"FirstName": "Deborah",
"LastName": "Secondname",
"Street": "335 Street2 Lane",
"Phone": "1235",
"MobilePhone": "93847",
"EMail": "person2@email2.com"
}]
我计划允许用户输入搜索词(var = searchword(。我想使用LocaleCompare进行该搜索Word变量并在数组中搜索字符串,无论情况如何。然后,如果在一个数组对象之一中找到字符串,它将显示所有字符串:该对象中的值对。我希望我已经足够清楚地描述了所有这些。