2017-05-30 3 views
1

J'essaie de filtrer à travers un tableau d'objets. Qu'est-ce que je fais mal.Tableau d'objets filter angular2

Ma pipe

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; 
    } 
    } 

Mes données seront comme

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

Je veux rechercher les valeurs. Après avoir posté cette question, j'ai trouvé une solution.

Ma solution actuelle

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; 

    } 

Est-ce bien. ou toute méthode recommandée?

Répondre

1

Peut-être acheived par

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; 

    }