2017-05-30 76 views
1

我想通过对象数组进行过滤。我究竟做错了什么。Array of Objects过滤器angular2

我管

transform(value: any, args?: any): any { 
    if (!args) return value; 

    return value.filter(item => this.checkValues(item, args)); 
    } 

    checkValues(item, args) { 
    const value = Object.keys(item).map(k => item[k]); 

    for (var i in value) { 
     return value[i].toString().indexOf(args) > -1; 
    } 
    } 

我的数据会像

data= [ 
{key:value}, 
{key1:value2} 
] 

我想通过值来搜索。

发布这个问题后,我想出了一个解决方案。

我目前的解决方案

transform(value: any, args?: any): any { 
    if (!args) return value; 

    return value.filter(item => this.checkValues(item, args)); 
    } 

    checkValues(item, args) { 

    const value = Object.keys(item).map(k => item[k]); 

    return JSON.stringify(value).indexOf(args) > -1; 

    } 

这是很好的。或任何推荐的方法?

回答

1

可以通过

transform(value: any, args?: any): any { 
    if (!args) return value; 

    return value.filter(item => this.checkValues(item, args)); 
    } 

    checkValues(item, args) { 

    const value = Object.keys(item).map(k => item[k]); 

    return String(value).indexOf(args) > -1; 

    } 
来来达到的