2017-06-16 4 views
1

Le tapuscrit Angular2 recherche les mêmes valeurs du tableau dans le tableau d'objets. Ce que je veux filtrer est l'une des valeurs de array_values ​​qui existe dans object_array ['extraService'], s'il existe un objet de retour. C'est Angular Pipe pour rerégler le modèle pour somekinde de la fonction de recherche.Filtre Angular2 dans le tapuscrit

let array_values = ["5", "4", "3"] 
let items = [{'name': "Marin", extraService:[5, 4]}, {'name': "Marin", extraService:[3, 4]}] 

Filtrer par tapuscrit mes essayer

return items.filter(item => items.array_values(f => f == item.extraService)); 

donc quelques exemples ce qui est sortie. Si array_values ​​est seulement

let array_values = ["3"] 

puis sortie de retour sera:

result = [{'name': "Marin", extraService:[3, 4]}] 

Tout conseil ou de l'échantillon comment puis-je gérer cela fonctionne.

Répondre

3

let array_values = ["5", "4", "3"] 
 
     let items = [{'name': "Marin", extraService:[5, 4]}, {'name': "Marin", extraService:[3, 4]}]; 
 

 
     let results = items.filter(item => { 
 
      const result = item.extraService.filter(extra => { 
 
       return array_values.indexOf(extra.toString()) !== -1; 
 
      }); 
 
      if (result.length > 0) return true; 
 
      return false; 
 
     }); 
 
     console.log(results);

Vous pouvez essayer cette approche:

let array_values = ["5", "4", "3"] 
    let items = [{'name': "Marin", extraService:[5, 4]}, {'name': "Marin", extraService:[3, 4]}]; 

    return items.filter(item => { 
     const result = item.extraService.filter(extra => { 
      return array_values.indexOf(extra.toString()) !== -1; 
     }); 
     if (result.length > 0) return true; 
     return false; 
    }); 
+0

@marin dans le cas où elle correspond à votre réponse, s'il vous plaît marquer c'est la réponse, TKS. –

+0

Oui, mais je veux retourner les objets de correspondance, ce code renvoie array_values. – marin

+0

Je vais mettre à jour ma question avec le résultat que je veux faire avec le filtre. – marin