2017-06-16 104 views
1

Angular2打字稿從數組中搜索相同的值到對象數組中。 我想過濾的是object_array ['extraService']中存在的任何來自array_values的值,如果存在返回對象。 這是用於搜索功能somekinde的renering模板的Angular Pipe。打字稿中的Angular2過濾器

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

通過打字稿篩選我嘗試

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

於是一些例子是什麼輸出。 如果array_values只有

let array_values = ["3"] 

然後從返回結果應該是:

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

任何意見或樣品我如何管理這個工作。

回答

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

你可以用這種方法試試:如果

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它你的答案相匹配,請註明它的答案,TKS。 –

+0

是的,但我想返回匹配對象,此代碼返回array_values。 – marin

+0

我將用結果更新我的問題,我想用濾鏡做什麼。 – marin