2017-04-10 8 views
0

jquery grepを使用してjson配列をフィルタリングしようとしていますが、grepが正しい出力を返しません。 。grepを使用したjsonオブジェクト配列のフィルタ

var response = "[{"ID":1,"Name":"Test1","Active":true}, 
{"ID":2,"Name":"Test2","Active":false}, 
{"ID":3,"Name":"Test3","Active":true}]"; 

var onlyActive = $.grep(response, function (value) { 
      return value.Active = true; 
     }); 
+1

= =その代わりの演算子 –

+1

あなたがする必要があるのは、==の代わりに==の比較を加えることです。 –

+2

または単に 'return value.Active' – charlietfl

答えて

2

私が見るあなたのコードには二つの問題があります。

まず: あなたのJSONオブジェクト内の余分な大手が「ありはする必要があります: -

var response = [ 
    {"ID":1,"Name":"Test1","Active":true}, 
    {"ID":2,"Name":"Test2","Active":false}, 
    {"ID":3,"Name":"Test3","Active":true} 
]; 

第二: あなたは割り当てvalue.Active = trueを返信していますが、間違っています: -

var onlyActive = $.grep(response, function (value) { 
    return value.Active; 
}); 

それだけです。

+0

ありがとうございます。私の文字列は二重引用符で囲まれていて動作しません。二重引用符を削除するにはどうしたらいいですか? – Lio

+0

@Lio ['JSON.parse()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) – mhodges

+0

ありがとうございました。 – Lio

関連する問題