离子json过滤

时间:2018-04-03 17:42:50

标签: typescript ionic-framework

以下代码旨在通过dishname中列出的条件过滤数组菜单项:

if (dishname && dishname.trim() != ''){
this.menuitems = this.menuitems.filter((item) =>{
return item.eName.toLowerCase().indexOf(dishname.toLowerCase()) > -1})

如果dishname是一个数组,我怎么能完成这个?

提前致谢!

1 个答案:

答案 0 :(得分:0)

将这部分代码解压缩为单个方法,并在交互中使用它,例如。简单的循环

//declare at the beginning of the class
filteredMenu =[]

//somewhere in your code
for(let i=0; i<this.dishnameArray.length; i++) {
    this.filteredMenu.push(this.filterMenu(this.dishnameArray[i]))
}

//somewhere later inside class, the function
filterMenu(dishname) {
    let pos = this.menuItems.indexOf(dishname.trim().toLowerCase())
    if(pos!==-1) return this.menuItems[pos]
    return //just return if nothing found
}

稍后使用过滤菜单进行菜单显示。当然,这不是太精确的做法。也许你可以在这里改进某种逻辑,也许你不需要过滤你的数组,或者通过角管来做。但这只是某种解决方案。选择是你的。