Angular 如何使用ionic3筛选数组中的嵌套数据
我试图根据用户名筛选数组并显示它,但当我尝试筛选时,它不显示任何数据。 用户结构是这样的Angular 如何使用ionic3筛选数组中的嵌套数据,angular,ionic-framework,ionic2,ionic3,Angular,Ionic Framework,Ionic2,Ionic3,我试图根据用户名筛选数组并显示它,但当我尝试筛选时,它不显示任何数据。 用户结构是这样的 buyer: [{ address: "" contactNo: "" email: "test@gmail.com" name: "user"}] cutomerContact: "3058989778" orderDate: "2019-07-31T12:10:11.
buyer: [{
address: ""
contactNo: ""
email: "test@gmail.com"
name: "user"}]
cutomerContact: "3058989778"
orderDate: "2019-07-31T12:10:11.818Z"
orderType: "general"
我过滤数组的代码是
this.userOrders = this.filteredOrders.filter(x => x.buyer = x.buyer.name == this.userName)
我不知道如何过滤嵌套数据。如果您有任何帮助,我将不胜感激
演示
让testArray=[
{
“姓名”:“所以”,
“买方”:[
{
“地址”:“地址”,
“联系人编号”:“,
“电子邮件”:test@gmail.com",
“名称”:“用户”
}
],
“客户联系人”:“3058989778”,
“订单日期”:“2019-07-31T12:10:11.818Z”,
“订单类型”:“常规”
}
];
让filteredArray=testArray.filter((element)=>element.buyer.some((subElement)=>subElement.name==user));
控制台日志(filteredArray)代码>请尝试以下操作
演示
让testArray=[
{
“姓名”:“所以”,
“买方”:[
{
“地址”:“地址”,
“联系人编号”:“,
“电子邮件”:test@gmail.com",
“名称”:“用户”
}
],
“客户联系人”:“3058989778”,
“订单日期”:“2019-07-31T12:10:11.818Z”,
“订单类型”:“常规”
}
];
让filteredArray=testArray.filter((element)=>element.buyer.some((subElement)=>subElement.name==user));
控制台日志(filteredArray)
用户筛选
以筛选主数组,并某些功能
以检查条件
some()方法对数组中的每个元素执行一次函数:
- 如果它找到一个数组元素,其中函数返回一个真值,
some()返回true(不检查其余值)
- 否则返回false
name='user';
过滤器数据=[
{
“买方”:[
{
“地址”:“地址”,
“联系人编号”:“,
“电子邮件”:user@gmail.com",
“名称”:“用户”
}
],
“客户联系人”:“3058989778”,
“订单日期”:“2019-07-31T12:10:11.818Z”,
“订单类型”:“常规”
},
{
“买方”:[
{
“地址”:“地址”,
“联系人编号”:“,
“电子邮件”:test@gmail.com",
“名称”:“测试”
}
],
“客户联系人”:“3058989778”,
“订单日期”:“2019-07-31T12:10:11.818Z”,
“订单类型”:“常规”
}
]
让结果=this.filterData.filter((x)=>{
返回x.buyer.some(y=>y.name==name)
})
console.log(result)
用户过滤器
过滤主数组和某些功能检查条件
some()方法对数组中的每个元素执行一次函数:
- 如果它找到一个数组元素,其中函数返回一个真值,
some()返回true(不检查其余值)
- 否则返回false
name='user';
过滤器数据=[
{
“买方”:[
{
“地址”:“地址”,
“联系人编号”:“,
“电子邮件”:user@gmail.com",
“名称”:“用户”
}
],
“客户联系人”:“3058989778”,
“订单日期”:“2019-07-31T12:10:11.818Z”,
“订单类型”:“常规”
},
{
“买方”:[
{
“地址”:“地址”,
“联系人编号”:“,
“电子邮件”:test@gmail.com",
“名称”:“测试”
}
],
“客户联系人”:“3058989778”,
“订单日期”:“2019-07-31T12:10:11.818Z”,
“订单类型”:“常规”
}
]
让结果=this.filterData.filter((x)=>{
返回x.buyer.some(y=>y.name==name)
})
console.log(结果)
将此.filteredOrders.filter(x=>x.buyer=x.buyer.name==this.userName)
替换为此.filteredOrders.filter(x=>x.buyer.name==this.userName)
@Kinjal我已经试过了,它只提供了一个空数组。如果buyer中始终只有一个对象,那么您可以尝试this.filteredOrders.filter(x=>x.buyer[0].name==this.userName)
否则您必须在filteredreplacethis.filteredOrders.filter中遍历buyer(x=>x.buyer=x.buyer.name==this.userName)
使用this.filteredOrders.filter(x=>x.buyer.name==this.userName)
@Kinjal我已经尝试过这个方法,它只提供了一个空数组如果buyer中始终只有一个对象,那么您可以尝试this.filteredOrders.filter(x=>x.buyer[0]=this.userName)
否则您必须在过滤器内部循环