2017-11-12 9 views
0

私は私のlist.tsファイルにこのコードを使用してアレイ複数のオブジェクトの配列をフィルタリングすることができない - IONIC 2

this.items = [ 
    'Amsterdam', 
    'Bogota', 
    'India' 
]; 

下にフィルタリングすることができる午前:

if (val && val.trim() != '') { 
    this.items = this.items.filter((item) => { 
    return (item.toLowerCase().indexOf(val.toLowerCase()) > -1); 
    }) 
} 

が要件 - 私はデータを取得しています複数の結果を持つ配列を返すjsonから、以下に示すhtmlとconsoleのイメージ。問題は、私はこのフィルタはどうすればよいです -

私は以下のコード使用してJSONからデータをフェッチしています:私はthis.listをフィルタリングする

this._listProduct.listProduct().subscribe(data => { 
    this.list = data; 
console.log(data); 

を、どのように

画像をガイドしてください。 list.htmlおよびconsole.log enter image description here

あなたの参照のためlist.htmlコード:

UPDATE 1: 私はコードの下に使用してみましたが、それは私にエラーを与えている - list.toLowerCase is not a function

コード試してみました -

if (val && val.trim() != '') { 
    this.list = this.list.filter((list) => { 
    return (list.toLowerCase().indexOf(val.toLowerCase()) > -1); 
    }) 
} 
+0

何をフィルタしますか?あなたは応答のオブジェクトの配列を持っていて、同じものをHTMLで繰り返します。ほかに何が欲しい? –

+0

検索ボックスに入力するときに、この配列全体をフィルタリングしたいときは、一致する行のみが表示され、すべてのオブジェクトから検索したい – user2828442

+0

まず、同じ変数リストを使用してリストを参照していますオブジェクトのリスト、およびオブジェクトのリストの中の要素に適用されます。それがリストに含まれている場合、 'product'のようなより良い名前を選んでください。あなたはリストの要素についてLowerCase()を呼び出しています。しかし、リストには文字列が含まれておらず、オブジェクトも含まれています。それは意味をなさない。フィルタリングする製品のプロパティ(名前)を決定する必要があります。カテゴリー? –

答えて

1

より多くの条件を追加します。フィルタを使用してオブジェクトをフィルタリングします。検索語を名前、商品サービス、カテゴリと比較するコードをPFBで指定します。

this.items = this.items.filter((item) => { 
    return ((item.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1) || 
(item.productservice .toLowerCase().indexOf(searchTerm.toLowerCase()) > -1) || 
(item.category .toLowerCase().indexOf(searchTerm.toLowerCase()) > -1)); 
    }) 
+0

私はこれのようにコーディングしました。 'if(val && val.trim()!= ''){ this.list = this.list.filter((item)=> { return( item.name.toLowerCase()。indexOf(val.toLowerCase())> -1)|| (item.productservice .toLowerCase()。indexOf(val.toLowerCase())> -1)|| (item。検索ボックスに何かを入力すると、「プロパティを読み取ることができません」、「未定義」のLowCaseに – user2828442

+0

と入力します。アイテムが名前、製品サービス、およびカテゴリのプロパティを持つオブジェクトのコレクションを持っているかどうかを確認してください –

+0

このサンプルを参照することができますhttps://stackblitz.com/edit/ionic-array-example –

関連する問題