2017-04-10 474 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

使用===而不是=它的assigment運算符 –

+1

你需要做的是添加==比較而不是= true; –

+2

或只是'返回值。主動' – 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