2015-09-10 60 views
-1

將此視爲我的json數據。 我想過濾使用值「LAN」的數據中的「gridValues」。我已經使用Ext js過濾器方法。它不會返回過濾器數據。如何在Ext js 4.1中過濾數組json

var tableData = [ 
       { 
        "TABLE_TITLE": "Details", 
        "tableColumns": { 
         "COLUMNNAME_0": "Interface", 
         "COLUMNNAME_1": "Conversation", 
         "COLUMNNAME_2": "Data Flow(KB)" 

        }, 
        "gridValues": [ 
         { 
          "COLUMVal_0": "LAN", 
          "COLUMVal_1": "192.168.9.113 to 61.16.173.233", 
          "COLUMVal_2": "1132.7" 

         }, 
         { 
          "COLUMVal_0": "TATA", 
          "COLUMVal_1": "192.168.8.67 to 111.221.115.98", 
          "COLUMVal_2": "619.72" 

         }, 
         { 
          "COLUMVal_0": "CITI", 
          "COLUMVal_1": "192.168.8.60 to 23.6.112.201", 
          "COLUMVal_2": "619.2" 

         } 

        ] 
       } 
      ]; 

我用來過濾數據下面的代碼:

var arry =[]; 
var fliterarry =[]; 
var i,u; 
for (i=0;i<tableData.length;i++) { 
    arry.push(tableData[i].gridValues); 
    } 
var arryFtr = arry.filter(function(e){ 
for (u=0;u<e.length;u++) { 
    if(e[u].COLUMVal_0 === 'TATA'){ 
     tableData[u].gridValues.push(e[u]); 
    } 
    return e[u].COLUMVal_0 == 'TATA'; 
} 
return fliterarry 
}); 
+0

請張貼 「Ext JS的過濾方法,」 你叫。 –

+0

篩選代碼 var arry = []; \t var fliterarry = []; \t var i,u; \t for(i = 0; i fekkyDEV

+0

你想過濾'LAN'或'TATA'? –

回答

1

我想你想COLUMVal_0等於 「TATA」 過濾數據,對不對?按照你的函數代碼

嘗試:

var filterArray = []; 
for (tdKey in tableData) { 
    for (gvKey in tableData[tdKey].gridValues) { 
     if (tableData[tdKey].gridValues[gvKey].COLUMVal_0 == "TATA") { 
      filterArray.push(tableData[tdKey].gridValues[gvKey]); 
     } 
    } 
} 
return fliterarry; 
+0

謝謝Joe,它的工作,但我怎麼可以替換tableData「gridValues」值的filterArray – fekkyDEV

+0

這樣做Ext.decode(tableData).gridvalues = filterArray,然後如果你需要再編碼tableData。你的數據將被更新。 –