2017-11-20 6 views
0

私はngx-translateを使用して、タグを含む、私のアプリを通してキーワードを翻訳しています。ユーザーはどの言語でも検索できます。Observable/subscribeの値を持つ配列をフィルタリングしていますか?

以前私が

this.tag_array_filtered = this.tag_array.filter(tag => 
    tag.toUpperCase().includes(this.tag_searched.toUpperCase())); 
) 

をしていたが、それだけではない翻訳を通じて、キーワードを検索します。

は、これは私が翻訳する準備ができては、キーの配列で、キー

this.translate.get(tag).subscribe(value => { 
    console.log(value); 
}) 

変数tag_arrayから翻訳を取得する方法です。 tag_searchedにはユーザー入力が含まれています。購読して値を変換しながら、どのように私は私の配列をフィルタリングすることができます(は明らかに動作していない)

this.tag_array_filtered = this.tag_array.filter(tag => 
    this.translate.get(tag.toUpperCase()).subscribe((value: string) => { 
     value.includes(this.tag_searched.toUpperCase()) 
    }) 
) 

tag_array_filteredは、私が何をしたいのか

を表示するキーの配列(翻訳されていない)のですか?私は配列から変換された各値をユーザー入力と比較したいと思います。

手作りのループでもできますが、すでに解決策がある場合は、おそらくもっと速くなるでしょう。

答えて

0

translate.get()メソッドは、文字列の配列も受け入れます。 このように試すことができます。最終出力は必要に応じて配列に変換できるオブジェクトになります。

let tag_array_filtered = this.tag_array.filter(tag => 
 
tag.toUpperCase() 
 
    .includes(this.tag_searched.toUpperCase()) 
 
    .map(e => e.toUpperCase()) 
 
this.translate.get(matching_tags).subscribe((values: {}) => { 
 
    this.tag_array_filtered_object = values 
 
})

関連する問題