2017-03-07 14 views
0

私の配列からいくつかの要素をフィルターしようとします。したがって、要素キーが配列内にある場合、それを含む配列のみが表示されます。オブジェクトを含む配列だけを表示する方法は?

{"result":["b", "f", "h"], "model":3, "path":3, "resultnumber":56, "otherproducts":["e"]}, 
{"result":["b", "f", "j"], "model":3, "path":3, "resultnumber":58, "otherproducts":["e"]}, 
{"result":["b", "g", "h"], "model":11, "path":3, "resultnumber":59, "otherproducts":[]} 

私のキーが「H」であれば、この場合には、それが唯一の第一及び第三の配列を示すべきです。

私のコードは今のように見えますが、私はそれらを表示する方法を見つけようとしています。

for (var i = 0; i < s.Data.results.length; i++){ 
    var checkObject = s.Data.results[i].path == 3; 
    console.log(checkObject); 
    if (checkObject){ 
     if(option in s.Data.results[i].result){ 
      console.log(s.Data.results[i].result); 
     } 
    } 
} 
+0

あなたの変数の詳細な説明をお願いすることができていると思います!あなたのオブジェクトのid? –

+0

@KeerthanaPrabhakaranだから私の場合、 'option'はこの場合選択した配列の要素で' h'なので、 'option'が' ["b"、 "g"、 "h" ] '結果を表示するそれ以外は非表示 –

+0

var filtered = data.filter(o => o.result.includes(" h ") – Redu

答えて

3

あなたはhow the in-operator works in javascriptで詳しく見てみましょう

var data = [{"result":["b", "f", "h"], "model":3, "path":3, "resultnumber":56, "otherproducts":["e"]}, 
 
{"result":["b", "f", "j"], "model":3, "path":3, "resultnumber":58, "otherproducts":["e"]}, 
 
{"result":["b", "g", "h"], "model":11, "path":3, "resultnumber":59, "otherproducts":[]}] 
 

 
var filtered = data.filter(({ result }) => result.indexOf("h") > -1) 
 

 
console.log(filtered);

1

あなたのパラメータと一致していないオブジェクトを除外するために、フィルタを使用することができます。 配列にこのプロパティが含まれているかどうかをチェックしません。配列にインデックスoptionがあるかどうかを確認します。

私は、あなたが探していることs.Data.results[i].result.indexOf(option) !== -1)のようなもの(同等のバリアントの詳細については、this postを見てみましょう)

関連する問題