我希望您能在此方面帮助我...我正在使用AngularJS =>
在MongoDB中发送查询之前,我必须过滤一个数组,所有值都来自ng-model,并且它是在提交表单时创建的,但是在发送查询之前,我必须过滤该数组,所以我可以丢弃未定义的值, 结构如下:
this.permision = [
{
title: 'Archivo',
submenu: [this.menu.productCatalog, this.menu.providers]
},
{
title: 'Usuarios',
submenu: [this.menu.users, this.menu.roles]
},
{
title: 'Presupuesto',
submenu: [this.menu.invoiceLog, this.menu.requestLog,
this.menu.creditLog, this.menu.reportLog]
},
{
title: 'Requerimientos',
submenu: [this.menu.dps1f1, this.menu.catalog,
this.menu.consolidate, this.menu.expenses,
this.menu.purchaseGeneration,
this.menu.purchaseTracking,
this.menu.circuits]
},
{
title: 'Operaciones',
submenu: [this.menu.account, this.menu.loadPay,
this.menu.accountStatus]
},
{
title: 'Graficos',
submenu: [this.menu.importFile]
},
{
title: 'Cuenta Corriente',
submenu: [this.menu.credit, this.menu.rates]
},
];
在发送查询之前,如何访问子菜单数组并对其进行过滤?
这是我发送查询时得到的答案:
{submenu:["DPS1F1", undefined, undefined, undefined, undefined, undefined, undefined] title : "Requerimientos"}
因此,所有未定义的值都必须删除,但它们在数组内部的深处。
Array.filter()
似乎不起作用,并且如果我尝试让indexOf()
使用Splice()
似乎也不起作用?谢谢你的帮助。
答案 0 :(得分:0)
您可以使用underscorejs
。
this.permision.map((e)=>{
e.submenu = _.compact(e.submenu);
});
紧凑 _.compact(列表) 返回删除了所有虚假值的列表的副本。在JavaScript中,false,null,0,“”,undefined和NaN都是虚假的。