2017-05-30 71 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; 

    } 
來來達到的