如何在Ext js 4.1中过滤数组json

How to filter the array json in Ext js 4.1

本文关键字:过滤 数组 json Ext js      更新时间:2023-09-26

认为这是我的json数据。我想使用值"LAN"过滤数据中的"gridValues"。我使用了Ext js的过滤方法。它不返回过滤器数据。

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 
}); 

我猜你想过滤的数据与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;