Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问嵌套数组元素。_Javascript_Json - Fatal编程技术网

Javascript 访问嵌套数组元素。

Javascript 访问嵌套数组元素。,javascript,json,Javascript,Json,我试图访问一个数组中的单元格中的元素,它位于另一个数组中 我尝试了几种方法,但都返回未定义 json: [ {"assignment":"Tom" , "cell":["Tom", "2013-10-06", "Client 3", "Activity", "Scheduled" ]} ] $.getJSON('data/gridData1.json',function(json){ var grid = json; filte

我试图访问一个数组中的单元格中的元素,它位于另一个数组中

我尝试了几种方法,但都返回未定义

json:

[
 {"assignment":"Tom" , "cell":["Tom", "2013-10-06", "Client 3", "Activity", "Scheduled" ]}
]
$.getJSON('data/gridData1.json',function(json){
                var grid = json;
                filterGrid(grid, ele);
            });
function filterGrid(filter, ele){
var types = ['Activity','Alert','Lead','Notification'];
var newTable = [];
var cs1 = $("option:selected", ele).attr("class");
var option = $("select[name='datagrid_filter'] option:selected").text().trim();
if(cs1 == 'type'){
    for(var i = 0; i < types.length; i++){
        if(types[i]==option){
            for(var k = 0; k < filter.length; k++){
                if(**filter[0][0][0].value==option**){
                        newTable.push(filter[k]);
                    }
                }
                break;
            }
        }
    }
buildGrid(newTable);
}
jquery:

[
 {"assignment":"Tom" , "cell":["Tom", "2013-10-06", "Client 3", "Activity", "Scheduled" ]}
]
$.getJSON('data/gridData1.json',function(json){
                var grid = json;
                filterGrid(grid, ele);
            });
function filterGrid(filter, ele){
var types = ['Activity','Alert','Lead','Notification'];
var newTable = [];
var cs1 = $("option:selected", ele).attr("class");
var option = $("select[name='datagrid_filter'] option:selected").text().trim();
if(cs1 == 'type'){
    for(var i = 0; i < types.length; i++){
        if(types[i]==option){
            for(var k = 0; k < filter.length; k++){
                if(**filter[0][0][0].value==option**){
                        newTable.push(filter[k]);
                    }
                }
                break;
            }
        }
    }
buildGrid(newTable);
}
这段代码返回的数组非常好

javascript:

[
 {"assignment":"Tom" , "cell":["Tom", "2013-10-06", "Client 3", "Activity", "Scheduled" ]}
]
$.getJSON('data/gridData1.json',function(json){
                var grid = json;
                filterGrid(grid, ele);
            });
function filterGrid(filter, ele){
var types = ['Activity','Alert','Lead','Notification'];
var newTable = [];
var cs1 = $("option:selected", ele).attr("class");
var option = $("select[name='datagrid_filter'] option:selected").text().trim();
if(cs1 == 'type'){
    for(var i = 0; i < types.length; i++){
        if(types[i]==option){
            for(var k = 0; k < filter.length; k++){
                if(**filter[0][0][0].value==option**){
                        newTable.push(filter[k]);
                    }
                }
                break;
            }
        }
    }
buildGrid(newTable);
}
函数filterGrid(过滤器,ele){
变量类型=['Activity'、'Alert'、'Lead'、'Notification'];
var newTable=[];
var cs1=$(“选项:选定”,ele).attr(“类”);
var option=$(“选择[name='datagrid_filter']option:selected”).text().trim();
如果(cs1==“类型”){
对于(变量i=0;i
不返回任何内容,包括第一个元素。
任何想法都很好。

您的数组有一个元素,它是一个对象,因此
过滤器[0]
为您提供该对象

该对象有两个属性,
assignment
cell
,因此
filter[0]。assignment
提供“Tom”和
filter[0]。cell
提供内部数组

内部数组中有
filter[0]。cell.length
项,第一个是
filter[0]。cell[0]
,第二个是
filter[0]。cell[1]
,等等

要迭代内部数组中的项,请执行以下操作:

for(var k = 0; k < filter[0].cell.length; k++){
    if(filter[0].cell[k]==option){
        newTable.push(filter[0].cell[k]);
        break;
    }
}

您尝试使用
过滤器[0][0][0]。value
的代码无效,因为您无法通过数字索引访问对象属性,除非实际属性名称是数字,而且在任何情况下,您都不希望
.value
位位于末尾。

我看不到JSON和
过滤器
之间的连接。
filterGrid()
做什么?我知道我是从json获取信息的。这不是问题所在。问题是如何找到隐藏在所有嵌套数组中的元素