ionic-framework - 搜索栏过滤器(嵌套数组)
问题描述
如何使用搜索栏过滤 ionic 4 搜索栏中的嵌套数组对象
ionic version-4.7.1 下面我附加了我的 Filter 函数,但我不能使用这个函数来过滤嵌套数组中的对象
this.filterData = this.allData.filter(data => {if (data.letter && this.searchTerm) {
for (var i = 0; i < data.child_contacts.length; i++) {
if (
data.child_contacts[i].full_name
.toLowerCase()
.indexOf(this.searchTerm.toLowerCase()) > -1
) {
return (
data.child_contacts[i].full_name
.toLowerCase()
.indexOf(this.searchTerm.toLowerCase()) > -1
);
}
}
return false;}});
这是需要过滤的数据
this.allData=[ {
"letter":"A",
"child_contact":[
{"full_name":"First"},
{"full_name":"second"},
{"full_name":"third"}
]
},
{
"letter":"B",
"child_contact":[
{"full_name":"First second"},
{"full_name":"Third"}
]
},
{
"letter":"C",
"child_contact":[
{"full_name":"Third"}
]
} ]
如果我搜索“第一”,我的预期输出将是,
[ {
"letter":"A",
"child_contact":[
{
"full_name":"First"
},
]
},
{
"letter":"B",
"child_contact":[
{
"full_name":"First"
},
]
}]
解决方案
我不确定这是否是完整的解决方案,但我可以看到的一个问题是您在过滤器中使用child_contacts
了一个,s
for (var i = 0; i < data.child_contacts.length; i++) {
但数据是child_contact
:
this.allData=[ {
"letter":"A",
"child_contact":[
{"full_name":"First"},
{"full_name":"second"},
{"full_name":"third"}
]
},
推荐阅读
- sql - Laravel 在 sql 多选字段中更新或删除
- regex - java中的正则表达式接受以相同字母开头和结尾的单词
- r - 如何将 Highcharter 绘图保存为本地磁盘上的图像?
- google-slides-api - 谷歌幻灯片 API:replaceAllLinks?
- node.js - 内存存储的最佳方法(GCP/云内存存储上的多区域)
- python - 在文本文件中编写一个简短列表
- javascript - 使用jsPDF添加圆角图片
- sql - SQL DB2 中具有多个条件的 Where 子句
- c++ - BNO055 启动不可靠,WRONG_START_BYTE 错误?
- java - 使用融合反序列化apache flink中的avro