我有一个这样的审讯:
items = [ { "key": "Group A", "value": [ { "name": "Nest Name 1" } }, { "key": "Group B", "value": [ { "name": "Nest Name 2" }, { "name": "Nest Name 3" } [ } ]
在一个有角度的管道中,我试图返回(以相同的格式)嵌套名称与字符串匹配的组。所以在这种情况下,如果我搜索了2,那么应该只返回组b,并且只返回第一个嵌套对象。
我的匹配项正在处理无嵌套代码:items?.filter(item => searchText.split(' ').every(q => new RegExp(q, 'i').test(item[field]))
searchText是我要搜索的单词,field是字段的名称(在本例中为名称)。
我以为这样的方法会奏效:
var tempList = []; items.filter(group => group.value.filter(item => searchText.split(' ').every(q => new RegExp(q, 'i').test(item[field])))).forEach(product => tempList.push(product)); return tempList;
但是当它返回正确的组时,实际的嵌套项不会被移除。
谢谢